diff options
author | Leah Rowe <leah@libreboot.org> | 2024-12-30 21:25:55 +0000 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2024-12-30 21:25:55 +0000 |
commit | 466ada423ddabacd6d7c8488b32ca1812f134033 (patch) | |
tree | c487857092fdc95a6412a9a202f72333bec4e437 /include/lib.sh | |
parent | b0a23840327f7df97d3b4ea03d0e3f3fe93291c9 (diff) |
move xbmkpath to XBMK_CACHE/
When doing ./mk release, the build system would create
symlinks inside xbmkpath/ relative to the current work tree,
which will differ from what's in PATH.
Since XBMK_CACHE is already set globally, from the main work
tree and the release-build work tree, that means we can know
reliably that PATH is always correct if we put xbmkpath/
inside XBMK_CACHE.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/lib.sh')
-rw-r--r-- | include/lib.sh | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/include/lib.sh b/include/lib.sh index ef54f143..2c86e37d 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -87,28 +87,29 @@ fi 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" +# XBMK_CACHE is a directory, for caching downloads and git repositories +[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache" +[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache" +[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \ + $err "cachedir is default, $PWD/cache, but it exists and is a symlink" +[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache" +[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file" + +# unify all temporary files/directories in a single TMPDIR [ -z "${TMPDIR+x}" ] || [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || unset TMPDIR [ -n "${TMPDIR+x}" ] && export TMPDIR="$TMPDIR" - if [ -z "${TMPDIR+x}" ]; then [ -f "lock" ] && $err "$PWD/lock exists. Is a build running?" export TMPDIR="/tmp" export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)" touch lock || $err "cannot create 'lock' file" - rm -Rf xbmkpath || $err "cannot remove xbmkpath" - mkdir -p xbmkpath || $err "cannot create xbmkpath" - export PATH="$PWD/xbmkpath:$PATH" || $err "Can't create xbmkpath" + rm -Rf "$XBMK_CACHE/xbmkpath" || $err "cannot remove xbmkpath" + mkdir -p "$XBMK_CACHE/xbmkpath" || $err "cannot create xbmkpath" + export PATH="$XBMK_CACHE/xbmkpath:$PATH" || \ + $err "Can't create xbmkpath" xbmk_parent="y" fi -# XBMK_CACHE is a directory, for caching downloads and git repositories -[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache" -[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache" -[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \ - $err "cachedir is default, $PWD/cache, but it exists and is a symlink" -[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache" -[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file" - # 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}" ] && export XBMK_RELEASE="n" |