From 43f9f228567ce2604cc640f9255ba970b7c06e4d Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Thu, 5 May 2022 00:15:37 -0400 Subject: [PATCH] add file locking to deploy/process scripts --- .gitignore | 1 + deploy-static | 9 ++++++++- process-static | 12 ++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 890d4987..c57b271e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ nginx-tmp node_modules static-tmp releases-base +lock diff --git a/deploy-static b/deploy-static index 9ace9230..287593c7 100755 --- a/deploy-static +++ b/deploy-static @@ -2,7 +2,14 @@ set -o errexit -o nounset -o pipefail -./process-static +touch lock +exec {fd}< lock +if ! flock -n $fd; then + echo deploy_static already locked >&2 + exit 1 +fi + +./process-static $fd servers=({0..2}.grapheneos.org) diff --git a/process-static b/process-static index 88f04d04..bbc7198d 100755 --- a/process-static +++ b/process-static @@ -3,6 +3,18 @@ set -o errexit -o nounset -o pipefail shopt -s dotglob extglob globstar +if [[ $# -eq 1 ]]; then + fd=$1 +else + touch lock + exec {fd}< lock +fi + +if ! flock -n $fd; then + echo deploy_static already locked >&2 + exit 1 +fi + export PATH="$PWD/node_modules/.bin:$PATH" # can use file:// to avoid network requests