From d2b7a495b1ee251306dd47e62cc14dc99f32f09d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 28 Sep 2015 21:00:23 +0200 Subject: [PATCH] Make sure this script can only run once at a time Signed-off-by: Michael Tremer --- build.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/build.sh b/build.sh index afed95c..a806045 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,7 @@ #!/bin/bash -l BASEDIR="/build/nightly" +LOCKFILE="/tmp/.nightly-builds.lock" UPLOAD_DIR="${BASEDIR}/upload" UPLOAD_TO="pakfire@git.ipfire.org:/pub/nightly" @@ -99,8 +100,32 @@ sync() { "${UPLOAD_DIR}/" "${UPLOAD_TO}" } +is_locked() { + [ -e "${LOCKFILE}" ] +} + +lock() { + touch "${LOCKFILE}" +} + +unlock() { + rm -f "${LOCKFILE}" +} + + +# Don't start again if the script is already running +if is_locked; then + exit 0 +fi + +# Lock +trap unlock EXIT +lock + for repo in $(find ${BASEDIR} -maxdepth 2 -type d -name ".git"); do [ -d "${repo}" ] || continue build "$(dirname ${repo})" done + +exit 0 -- 2.47.3