src.hhvn.uk > hhvn.uk-scripts > commit > 309d2c88123200a10b40ff335efc8416764c599a

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

commit 309d2c88123200a10b40ff335efc8416764c599a
parent 315fb2e8e36e973f547ec6a5a2883569f12193c5
Author: Hayden Hamilton <hayden@hhvn.uk>
Date:   Sun, 24 May 2026 21:10:40 +0100

dkim/mkcert: better descript + list files on stdout

Diffstat:
Mdkim/mkcert | 31++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/dkim/mkcert b/dkim/mkcert @@ -1,6 +1,17 @@ #!/bin/rc # This script generates and stores DKIM keypair, using the correct user +# It outputs all paths generated in the following order: +# - privkey +# - pubkey +# - txt record to be used in dns +# +# Example/intended usage: +# dkimfiles = `$nl{dkim/mkcert <selector>} +# privkey = $dkimfiles(1) +# txtfile = $dkimfiles(2) +# +# There is no real need for the pubkey to be stored as its own file. dir = /etc/mail/dkim user =_dkimsign_ @@ -9,19 +20,18 @@ privkey = $dir/$selector.priv.key pubkey = $dir/$selector.pub.key txt = $dir/$selector.txt -if (!~ $#* 1) { - echo 'usage: mkcert <selector>' - exit 2 +fn err { + echo $* >[1=2] } fn die { - echo fatal error: $* >[1=2] + err fatal error: $* exit 1 } fn mustsucceed { if (!$*) { - echo fatal error: essential command failed >[1=2] + err fatal error: essential command failed cleanupfailed exit 1 } @@ -37,6 +47,12 @@ fn as { doas -u _dkimsign $* } +if (!~ $#* 1) { + err 'usage: mkcert <selector>' + exit 2 +} + + as test -e $privkey && die $privkey already exists as test -e $pubkey && die $pubkey already exists as test -e $txt && die $txt already exists @@ -49,3 +65,8 @@ mustsucceed as openssl rsa -in $privkey -pubout | \ mustsucceed as cat $pubkey | \ mustsucceed as sed '1s/.*/v=DKIM1;p=/;:nl;${s/-----.*//;q;};N;s/\n//g;b nl;' | \ mustsucceed as tee $txt >/dev/null + +err 'Paths generated (privkey, pubkey, txt dns record):' +echo $privkey +echo $pubkey +echo $txt