aboutsummaryrefslogtreecommitdiffstats
path: root/init.sh
diff options
context:
space:
mode:
authorLexi Winter <ivy@FreeBSD.org>2025-06-03 07:21:08 +0100
committerLexi Winter <ivy@FreeBSD.org>2025-06-03 07:21:08 +0100
commite1f2a8dd272cdbe4f5e54853008a3e5f24f4af71 (patch)
tree2afe7daa22b636948498595a4b1e07b3fe9b2eea /init.sh
downloadlfacme-e1f2a8dd272cdbe4f5e54853008a3e5f24f4af71.tar.gz
lfacme-e1f2a8dd272cdbe4f5e54853008a3e5f24f4af71.tar.bz2
initial commit
Diffstat (limited to 'init.sh')
-rw-r--r--init.sh56
1 files changed, 56 insertions, 0 deletions
diff --git a/init.sh b/init.sh
new file mode 100644
index 0000000..b1c9494
--- /dev/null
+++ b/init.sh
@@ -0,0 +1,56 @@
+# This source code is released into the public domain.
+
+_BASEDIR="/usr/local"
+_SHARE="${_BASEDIR}/share/lfacme"
+_CONFDIR="${_BASEDIR}/etc/lfacme"
+_CONFIG="${_CONFDIR}/acme.conf"
+_DOMAINS="${_CONFDIR}/domains.conf"
+_UACME=/usr/local/bin/uacme
+_UACME_DIR="${_CONFDIR}/certs"
+
+_PROGNAME="$0"
+
+_uacme() {
+ "$_UACME" -a "$ACME_URL" -c "$_UACME_DIR" "$@"
+}
+
+_fatal() {
+ local _fmt=$1; shift
+ local _msg="$(printf "$_fmt" "$@")"
+ printf >&2 '%s: FATAL: %s\n' "$_PROGNAME" "$_msg"
+ exit 1
+}
+
+_error() {
+ local _fmt=$1; shift
+ local _msg="$(printf "$_fmt" "$@")"
+ printf >&2 '%s: ERROR: %s\n' "$_PROGNAME" "$_msg"
+}
+
+_warn() {
+ local _fmt=$1; shift
+ local _msg="$(printf "$_fmt" "$@")"
+ printf >&2 '%s: WARNING: %s\n' "$_PROGNAME" "$_msg"
+}
+
+if ! [ -f "$_CONFIG" ]; then
+ _fatal "missing %s" "$_CONFIG"
+fi
+
+. "$_CONFIG"
+
+if [ -z "$ACME_URL" ]; then
+ _fatal "ACME_URL must be set in %s" "$_CONFIG"
+fi
+
+if [ -z "$ACME_DIR" ]; then
+ _fatal "ACME_DIR must be set in %s" "$_CONFIG"
+fi
+
+if [ -z "$ACME_KERBEROS_PRINCIPAL" ]; then
+ ACME_KERBEROS_PRINCIPAL="host/$(hostname)"
+fi
+
+if [ -z "$ACME_HOOKDIR" ]; then
+ ACME_HOOKDIR="${_CONFDIR}/hooks"
+fi