summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2022-05-05 00:15:37 -0400
committerDaniel Micay <danielmicay@gmail.com>2022-05-05 00:19:01 -0400
commit43f9f228567ce2604cc640f9255ba970b7c06e4d (patch)
treed5121cec439fe150259ec8babb48971c21e51644
parenta255769f6143568a9d21071daec21a2165dddfb2 (diff)
add file locking to deploy/process scripts
-rw-r--r--.gitignore1
-rwxr-xr-xdeploy-static9
-rwxr-xr-xprocess-static12
3 files changed, 21 insertions, 1 deletions
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