Add acmetool hook example
This commit is contained in:
34
examples/acmetool/mtik-cert-pusher-hook
Executable file
34
examples/acmetool/mtik-cert-pusher-hook
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# dlitz 2026
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
EVENT_NAME="$1"
|
||||||
|
[ "$EVENT_NAME" = "live-updated" ] || exit 42
|
||||||
|
|
||||||
|
[ -e "/etc/default/acme-mtik-cert-pusher-hook" ] && . /etc/default/acme-mtik-cert-pusher-hook
|
||||||
|
[ -e "/etc/conf.d/acme-mtik-cert-pusher-hook" ] && . /etc/conf.d/acme-mtik-cert-pusher-hook
|
||||||
|
[ -z "${ACME_STATE_DIR-}" ] && ACME_STATE_DIR="/var/lib/acme"
|
||||||
|
|
||||||
|
declare -A match_hosts=()
|
||||||
|
while read name dummy; do
|
||||||
|
if [[ "$name" == \#* ]]; then
|
||||||
|
# Ignore comments
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
match_hosts["$name"]=1
|
||||||
|
done < "$ACME_STATE_DIR/conf/mtik-hosts"
|
||||||
|
|
||||||
|
cd /opt/mtik-cert-pusher
|
||||||
|
|
||||||
|
while read name; do
|
||||||
|
certdir="$ACME_STATE_DIR/live/$name"
|
||||||
|
if [ -z "$name" -o ! -e "$certdir" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ "${match_hosts[$name]+1}" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 -m mtik_cert_pusher deploy --private-key "$certdir/privkey" --cert "$certdir/cert" --chain "$certdir/chain" --ssh-host "$name"
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user