From: Lukas Schauer Date: Tue, 8 Dec 2015 14:51:12 +0000 (+0100) Subject: Check for config file in various locations X-Git-Tag: v0.1.0~167 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=454c164b253ff8c0ed6e548e3edf0719d3add5ac;p=thirdparty%2Fdehydrated.git Check for config file in various locations --- diff --git a/config.sh.example b/config.sh.example index bdbf8c1..f61b430 100644 --- a/config.sh.example +++ b/config.sh.example @@ -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: - tries to figure out system default) #OPENSSL_CNF= diff --git a/letsencrypt.sh b/letsencrypt.sh index 36467d0..728b044 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -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'