reconfig-dns (882B)
1 #!/bin/rc -e 2 3 user = _nsd 4 rsatxt = $1 5 edtxt = $2 6 selector = $3 7 domain = $4 8 zonefile = $5 9 telltale = '; generated by dkim reconfig-dns' 10 11 fn err { 12 echo $* >[1=2] 13 } 14 15 fn as { 16 doas -u $user $* 17 } 18 19 fn record { 20 } 21 22 if (test $#* -gt 5 || test $#* -lt 3) { 23 err 'usage: reconfig-dns <record 1> <record 2> <selector> [domain] [zonefile]' 24 exit 2 25 } 26 27 if (~ $domain ()) { 28 domain = `hostname 29 } 30 31 if (~ $zonefile ()) { 32 zonefile = /var/nsd/zones/master/ ^ $domain 33 } 34 35 as sed -ibkp '/' ^ $telltale ^ '/d' $zonefile 36 37 { 38 cat $zonefile 39 printf '%s._domainkey\tIN TXT "%s" %s\n' \ 40 $selector `$nl{cat $rsatxt} $telltale 41 record $edtxt 42 printf '%s._domainkey\tIN TXT "%s" %s\n' \ 43 ed$selector `$nl{cat $edtxt} $telltale 44 } | as tee $zonefile >/dev/null 45 46 if (!nsd-checkzone $domain $zonefile) { 47 err zone invalid, please manually check $zonefile 48 exit 3 49 } 50 51 doas nsd-control reload hhvn.uk