]> git.ipfire.org Git - thirdparty/dehydrated.git/commitdiff
use lock file to prevent concurrent access
authorSimon Ruderich <simon@ruderich.org>
Tue, 8 Dec 2015 16:50:46 +0000 (17:50 +0100)
committerSimon Ruderich <simon@ruderich.org>
Tue, 8 Dec 2015 16:52:18 +0000 (17:52 +0100)
Closes #31.

letsencrypt.sh

index 509fa520910d305cac5af1b20d2b51aff116794f..526ce9a824e53baf5979187c07824cf9961043b4 100755 (executable)
@@ -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)"