src.hhvn.uk > hhvn.uk-scripts > file > dkim > reconfig-dns

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

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