From: Daniel Beyer Date: Sun, 22 May 2016 16:49:17 +0000 (+0200) Subject: Make location of domains.txt configurable (#204) X-Git-Tag: v0.3.0~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3e5ed361b05cc26b3046d22bf7bb8792625d305;p=thirdparty%2Fdehydrated.git Make location of domains.txt configurable (#204) This is implemented by defining ${DOMAINS_TXT} in config.sh. If not set in config.sh, it defaults to the previously (hard-coded) location, which is ${BASEDIR}/domains.txt. --- diff --git a/docs/examples/config.sh.example b/docs/examples/config.sh.example index a3a4578..3d20a51 100644 --- a/docs/examples/config.sh.example +++ b/docs/examples/config.sh.example @@ -30,6 +30,9 @@ # Base directory for account key, generated certificates and list of domains (default: $SCRIPTDIR -- uses config directory if undefined) #BASEDIR=$SCRIPTDIR +# File containing the list of domains to request certificates for (default: $BASEDIR/domains.txt) +#DOMAINS_TXT="${BASEDIR}/domains.txt" + # Output directory for challenge-tokens to be served by webserver or deployed in HOOK (default: $BASEDIR/.acme-challenges) #WELLKNOWN="${BASEDIR}/.acme-challenges" diff --git a/letsencrypt.sh b/letsencrypt.sh index fccad50..5c5411e 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -64,6 +64,7 @@ load_config() { LICENSE="https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf" CHALLENGETYPE="http-01" CONFIG_D= + DOMAINS_TXT= HOOK= HOOK_CHAIN="no" RENEW_DAYS="30" @@ -117,6 +118,7 @@ load_config() { [[ -z "${ACCOUNT_KEY}" ]] && ACCOUNT_KEY="${BASEDIR}/private_key.pem" [[ -z "${ACCOUNT_KEY_JSON}" ]] && ACCOUNT_KEY_JSON="${BASEDIR}/private_key.json" + [[ -z "${DOMAINS_TXT}" ]] && DOMAINS_TXT="${BASEDIR}/domains.txt" [[ -z "${WELLKNOWN}" ]] && WELLKNOWN="${BASEDIR}/.acme-challenges" [[ -z "${LOCKFILE}" ]] && LOCKFILE="${BASEDIR}/lock" @@ -570,8 +572,10 @@ command_sign_domains() { if [[ -n "${PARAM_DOMAIN:-}" ]]; then DOMAINS_TXT="$(_mktemp)" printf -- "${PARAM_DOMAIN}" > "${DOMAINS_TXT}" - elif [[ -e "${BASEDIR}/domains.txt" ]]; then - DOMAINS_TXT="${BASEDIR}/domains.txt" + elif [[ -e "${DOMAINS_TXT}" ]]; then + if [[ ! -r "${DOMAINS_TXT}" ]]; then + _exiterr "domains.txt found but not readable" + fi else _exiterr "domains.txt not found and --domain not given" fi @@ -771,7 +775,7 @@ command_help() { command_env() { echo "# letsencrypt.sh configuration" load_config - typeset -p CA LICENSE CHALLENGETYPE HOOK HOOK_CHAIN RENEW_DAYS ACCOUNT_KEY ACCOUNT_KEY_JSON KEYSIZE WELLKNOWN PRIVATE_KEY_RENEW OPENSSL_CNF CONTACT_EMAIL LOCKFILE + typeset -p CA LICENSE CHALLENGETYPE DOMAINS_TXT HOOK HOOK_CHAIN RENEW_DAYS ACCOUNT_KEY ACCOUNT_KEY_JSON KEYSIZE WELLKNOWN PRIVATE_KEY_RENEW OPENSSL_CNF CONTACT_EMAIL LOCKFILE } # Main method (parses script arguments and calls command_* methods)