# #
# 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 #
########################################################
# 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=
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.
# Export some environment variables to be used in hook script
export WELLKNOWN
export BASEDIR
+export CONFIG
anti_newline() {
tr -d '\n\r'