summaryrefslogtreecommitdiff
path: root/dkim/reconfig-dns
blob: f81862a6cf86c6725a68ad19c87f10d95e91ba77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/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 {
}

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
	printf '%s._domainkey\tIN  TXT  "%s" %s\n' \
		$selector `$nl{cat $rsatxt} $telltale
	record $edtxt
	printf '%s._domainkey\tIN  TXT  "%s" %s\n' \
		ed$selector `$nl{cat $edtxt} $telltale
} | 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