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