From e4cef075753b17c6048f62d2e973d6ac65a47dd0 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sat, 1 Sep 2012 13:20:14 +0200 Subject: [PATCH] [scripts] move file lock handling for iso_build.sh consumers from crontab --- scripts/daily_iso_build_locked.sh | 5 +++++ scripts/iso_build.include | 3 +++ scripts/iso_build_locked.sh | 35 ++++++++++++++++++++++++++++++ scripts/weekly_iso_build_locked.sh | 6 +++++ 4 files changed, 49 insertions(+) create mode 100755 scripts/daily_iso_build_locked.sh create mode 100644 scripts/iso_build.include create mode 100755 scripts/iso_build_locked.sh create mode 100755 scripts/weekly_iso_build_locked.sh diff --git a/scripts/daily_iso_build_locked.sh b/scripts/daily_iso_build_locked.sh new file mode 100755 index 0000000..7e1365d --- /dev/null +++ b/scripts/daily_iso_build_locked.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +SABAYON_MOLECULE_HOME="${SABAYON_MOLECULE_HOME:-/sabayon}" + +exec "${SABAYON_MOLECULE_HOME}/scripts/iso_build_locked.sh" "daily_iso_build.sh" diff --git a/scripts/iso_build.include b/scripts/iso_build.include new file mode 100644 index 0000000..d117cd6 --- /dev/null +++ b/scripts/iso_build.include @@ -0,0 +1,3 @@ +#!/bin/sh + +ISO_BUILD_LOCK=/tmp/.daily_iso_build.sh.lock diff --git a/scripts/iso_build_locked.sh b/scripts/iso_build_locked.sh new file mode 100755 index 0000000..37196bd --- /dev/null +++ b/scripts/iso_build_locked.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +if [ -z "${1}" ]; then + echo "${0} " >&2 + exit 1 +fi + +BUILD_SCRIPT_NAME="${1}" + +SABAYON_MOLECULE_HOME="${SABAYON_MOLECULE_HOME:-/sabayon}" +. "${SABAYON_MOLECULE_HOME}/scripts/iso_build.include" + +# Pull new data from Git +( + flock --timeout 7200 -x 9 + if [ "${?}" != "0" ]; then + echo "[git pull] cannot acquire lock, stale process holding it?" >&2 + exit 1 + fi + cd /sabayon && git pull --quiet +) 9> "${ISO_BUILD_LOCK}" + +# Execute build +( + flock --timeout 7200 -x 9 + if [ "${?}" != "0" ]; then + echo "[build] cannot acquire lock, stale process holding it?" >&2 + exit 1 + fi + + "${SABAYON_MOLECULE_HOME}/scripts/${BUILD_SCRIPT_NAME}" + +) 9> "${ISO_BUILD_LOCK}" + +exit ${?} \ No newline at end of file diff --git a/scripts/weekly_iso_build_locked.sh b/scripts/weekly_iso_build_locked.sh new file mode 100755 index 0000000..7a8fe0d --- /dev/null +++ b/scripts/weekly_iso_build_locked.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +SABAYON_MOLECULE_HOME="${SABAYON_MOLECULE_HOME:-/sabayon}" + +exec "${SABAYON_MOLECULE_HOME}/scripts/iso_build_locked.sh" \ + "weekly_iso_build.sh" \ No newline at end of file