41 lines
924 B
Bash
Executable File
41 lines
924 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
. driglibash-base
|
|
here="$(where)"
|
|
|
|
# For some variables
|
|
. /etc/jeancloud.env
|
|
. "$here/.env"
|
|
|
|
# Test secret presence
|
|
[ ! -f "$DATA_DIR/rfc2136.ini" ] && echo "$0 Missing file '$DATA_DIR/rfc2136.ini'" && exit 1
|
|
|
|
export tmp="$(mktemp -d)"
|
|
mkdir -p "$tmp/{work,logs}"
|
|
|
|
# If there is some args, populate a fake service file
|
|
if [ "$#" -ge 1 ] && [ -n "$1" ] ; then
|
|
servicefile="$(mktemp)"
|
|
for service in "$@" ; do
|
|
echo "$service _" >> "$servicefile"
|
|
done
|
|
fi
|
|
|
|
# For each service, read all possible domains
|
|
while read line ; do
|
|
read -r service target < <(echo "$line")
|
|
|
|
# removo dummy cert
|
|
dummy_cert.sh "$service" remove
|
|
|
|
[ -d "$DATA_DIR/certs/live/$service" ] && echo "Already exists, thats a job for renew : $service" && continue
|
|
|
|
# acme
|
|
"$here/acme-dns.sh" "$service"
|
|
|
|
# Replace dummy cert if letsencrypt failed
|
|
[ "$?" -ne 0 ] && dummy_cert.sh "$servic" remove
|
|
done < "$servicefile"
|