From f9126627a8c026d12f4bd119f853a1295bd1d7a4 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Tue, 8 Dec 2015 17:50:46 +0100 Subject: [PATCH] use lock file to prevent concurrent access Closes #31. --- letsencrypt.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/letsencrypt.sh b/letsencrypt.sh index 509fa52..526ce9a 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -306,6 +306,25 @@ sign_domain() { echo " + Done!" } + +LOCKFILE="${BASEDIR}/lock" +remove_lock() { + if [[ -n "${LOCKFILE}" ]]; then + rm -f "${LOCKFILE}" + fi +} +trap 'remove_lock' EXIT + +# Use lock file to prevent concurrent access. +set -o noclobber +if ! { date > "${LOCKFILE}"; } 2>/dev/null; then + echo " + ERROR: Lock file '${LOCKFILE}' present, aborting." >&2 + LOCKFILE= # so remove_lock doesn't remove it + exit 1 +fi +set +o noclobber + + # Get CA URLs CA_DIRECTORY="$(_request get "${CA}")" CA_NEW_CERT="$(printf "%s" "${CA_DIRECTORY}" | get_json_string_value new-cert)"