]> git.ipfire.org Git - thirdparty/dehydrated.git/commitdiff
Check for config file in various locations
authorLukas Schauer <lukas@schauer.so>
Tue, 8 Dec 2015 14:51:12 +0000 (15:51 +0100)
committerLukas Schauer <lukas@schauer.so>
Tue, 8 Dec 2015 14:57:22 +0000 (15:57 +0100)
config.sh.example
letsencrypt.sh

index bdbf8c18b8f621c8b905fa87f86244a27ec1ce2b..f61b430a85e0ab47d95f8b382bbb147901b0a62c 100644 (file)
@@ -5,6 +5,10 @@
 #                                                      #
 # This file is looked for in the following locations:  #
 # $SCRIPTDIR/config.sh (next to this script)           #
+# ${HOME}/.letsencrypt.sh/config.sh (in user home)     #
+# /usr/local/etc/letsencrypt.sh/config.sh              #
+# /etc/letsencrypt.sh/config.sh                        #
+# ${PWD}/config.sh (in current working-directory)      #
 #                                                      #
 # Default values of this config are in comments        #
 ########################################################
@@ -18,8 +22,8 @@
 # Default keysize for private keys (default: 4096)
 #KEYSIZE="4096"
 
-# Base directory for account key, generated certificates and list of domains (default: $SCRIPTDIR)
-#BASEDIR="${SCRIPTDIR}"
+# Base directory for account key, generated certificates and list of domains (default: $SCRIPTDIR -- uses config directory if undefined)
+#BASEDIR=$SCRIPTDIR
 
 # Path to openssl config file (default: <unset> - tries to figure out system default)
 #OPENSSL_CNF=
index 36467d0b0386e6b8b7a70cb25c202083bf5b4e35..728b0447dcc23492a22833efb58eb26ff5cf2089 100755 (executable)
@@ -20,10 +20,23 @@ OPENSSL_CNF="$(openssl version -d | cut -d'"' -f2)/openssl.cnf"
 ROOTCERT="lets-encrypt-x1-cross-signed.pem"
 CONTACT_EMAIL=
 
-# If exists load config from same directory as this script
-if [[ -e "${BASEDIR}/config.sh" ]]; then
+# Check for config in various locations
+CONFIG=""
+for check_config in "${SCRIPTDIR}" "${HOME}/.letsencrypt.sh" "/usr/local/etc/letsencrypt.sh" "/etc/letsencrypt.sh" "${PWD}"; do
+  if [[ -e "${check_config}/config.sh" ]]; then
+    BASEDIR="${check_config}"
+    CONFIG="${check_config}/config.sh"
+    break
+  fi
+done
+
+if [[ -z "${CONFIG}" ]]; then
+  echo "WARNING: No config file found, using default config!"
+  sleep 2
+else
+  echo "Using config file ${check_config}"
   # shellcheck disable=SC1090
-  . "${BASEDIR}/config.sh"
+  . "${CONFIG}"
 fi
 
 # Remove slash from end of BASEDIR. Mostly for cleaner outputs, doesn't change functionality.
@@ -34,6 +47,7 @@ umask 077 # paranoid umask, we're creating private keys
 # Export some environment variables to be used in hook script
 export WELLKNOWN
 export BASEDIR
+export CONFIG
 
 anti_newline() {
   tr -d '\n\r'