diff options
author | Leah Rowe <leah@libreboot.org> | 2024-06-09 15:37:13 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2024-06-09 15:37:13 +0100 |
commit | e80c4b73ceb10c38a93c769e681afb947d9dfb1c (patch) | |
tree | 9d684ceb33bfe1229b4efec39dfa4f5d156dbbcd /include | |
parent | a0710ef9cac6e9f27852676d1bafa5d8c5f8ac47 (diff) |
create a lock file during builds
prevent duplicate main instances of the build
system from running
the lock file is deleted when the parent process
exits, alongside the tmpdir deletion
the build system must only ever be run ot one
instance at a time, per work directory
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include')
-rwxr-xr-x | include/lib.sh | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/include/lib.sh b/include/lib.sh index b3a76879..b41645fb 100755 --- a/include/lib.sh +++ b/include/lib.sh @@ -65,27 +65,28 @@ install_packages() id -u 1>/dev/null 2>/dev/null || $err "suid check failed (id -u)" [ "$(id -u)" != "0" ] || $err "this command as root is not permitted" -# if "y": a coreboot target won't be built if target.cfg says release="n" -# (this is used to exclude certain build targets from releases) - -[ -z "${XBMK_RELEASE+x}" ] && xbmk_release="n" -[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE" -[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n" -export XBMK_RELEASE="$xbmk_release" - [ -z "${TMPDIR+x}" ] && tmpdir_was_set="n" if [ "$tmpdir_was_set" = "y" ]; then [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || tmpdir_was_set="n" fi if [ "$tmpdir_was_set" = "n" ]; then + [ -f "lock" ] && $err "The 'lock' file exists. Is a build running?" export TMPDIR="/tmp" tmpdir="$(mktemp -d -t xbmk_XXXXXXXX)" export TMPDIR="$tmpdir" + touch lock || $err "cannot create 'lock' file" else export TMPDIR="$TMPDIR" tmpdir="$TMPDIR" fi +# if "y": a coreboot target won't be built if target.cfg says release="n" +# (this is used to exclude certain build targets from releases) +[ -z "${XBMK_RELEASE+x}" ] && xbmk_release="n" +[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE" +[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n" +export XBMK_RELEASE="$xbmk_release" + [ -z "${XBMK_THREADS+x}" ] || threads="$XBMK_THREADS" [ -z "$threads" ] && threads=1 expr "X$threads" : "X-\{0,1\}[0123456789][0123456789]*$" \ |