src.hhvn.uk > hhvn.uk-scripts > commit > e6f93e5c93349d0649142ce21de47301038767a2

scripts that power hhvn.uk
Log | Files | Refs | README

commit e6f93e5c93349d0649142ce21de47301038767a2
parent 58eb5aa0096cf0a9bcb3746fc831c660c0ddf67f
Author: Hayden Hamilton <hayden@hhvn.uk>
Date:   Mon, 25 May 2026 10:15:35 +0100

Create dkim/reconfig-dns

Diffstat:
Adkim/reconfig-dns | 50++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+), 0 deletions(-)

diff --git a/dkim/reconfig-dns b/dkim/reconfig-dns @@ -0,0 +1,50 @@ +#!/bin/rc -e + +user = _nsd +rsatxt = $1 +edtxt = $2 +selector = $3 +domain = $4 +zonefile = $5 +telltale = '; generated by dkim reconfig-dns' + +fn err { + echo $* >[1=2] +} + +fn as { + doas -u $user $* +} + +fn record { + printf '%s._domainkey\tIN TXT "%s" %s\n' \ + $selector `$nl{cat $1} $telltale +} + +if (test $#* -gt 5 || test $#* -lt 3) { + err 'usage: reconfig-dns <record 1> <record 2> <selector> [domain] [zonefile]' + exit 2 +} + +if (~ $domain ()) { + domain = `hostname +} + +if (~ $zonefile ()) { + zonefile = /var/nsd/zones/master/ ^ $domain +} + +as sed -ibkp '/' ^ $telltale ^ '/d' $zonefile + +{ + cat $zonefile + record $rsatxt + record $edtxt +} | as tee $zonefile >/dev/null + +if (!nsd-checkzone $domain $zonefile) { + err zone invalid, please manually check $zonefile + exit 3 +} + +doas nsd-control reload hhvn.uk