init.sh: move TMPDIR handling to own functions

this makes xbmk_set_env easier to read

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2025-08-31 21:27:51 +01:00
parent f96bf2b2cd
commit c148b220d8
+41 -31
View File
@@ -15,7 +15,7 @@ projectsite="https://libreboot.org/"
eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
datadir version xbmkpwd relname xbmkpwd xbtmp python pyver xbloc \ datadir version xbmkpwd relname xbmkpwd xbtmp python pyver xbloc \
xbmklock cvxbmk cvchk xbmkpath`" xbmklock cvxbmk cvchk xbmkpath is_child`"
xbmk_init() xbmk_init()
{ {
@@ -70,6 +70,43 @@ xbmk_set_env()
[ -f "$xbmklock" ] && is_child="y" [ -f "$xbmklock" ] && is_child="y"
if [ "$is_child" = "y" ]; then if [ "$is_child" = "y" ]; then
xbmk_child_set_tmp
return 1
fi
# parent instance of xbmk, so continue.
xbmk_parent_check_tmp
[ -f "$xbmklock" ] && err "'$xbmklock' exists. Is a build running?"
printf "%s\n" "$xbtmp" > "$xbmklock" || \
err "cannot create '$xbmklock'"; :
export XBMK_CACHE="$xbmkpwd/cache"
[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \
err "cachedir '$xbmkpwd/cache' is a symlink"
[ ! -e "$XBMK_CACHE" ] || \
[ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; :
export PATH="$XBMK_CACHE/xbmkpath:$XBMK_CACHE/gnupath:$PATH"
xbmkpath="$PATH"
# 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"
[ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y"
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
xbmk_set_version
export LOCALVERSION="-$projectname-${version%%-*}"
remkdir "$xbtmp" "$xbloc" "$XBMK_CACHE/gnupath" "$XBMK_CACHE/xbmkpath"
xbmk_set_pyver
}
xbmk_child_set_tmp()
{
eval `setvars "" xbtmp badtmp xbtmpchk xbtmpname` eval `setvars "" xbtmp badtmp xbtmpchk xbtmpname`
[ -z "${TMPDIR+x}" ] && export TMPDIR="/tmp" [ -z "${TMPDIR+x}" ] && export TMPDIR="/tmp"
@@ -104,11 +141,10 @@ xbmk_set_env()
[ -z "${XBMK_CACHE+x}" ] && err "XBMK_CACHE unset on child" [ -z "${XBMK_CACHE+x}" ] && err "XBMK_CACHE unset on child"
[ -z "${XBMK_THREADS+x}" ] && xbmk_set_threads [ -z "${XBMK_THREADS+x}" ] && xbmk_set_threads
e "lock" f missing && err "lock file absent on child" e "lock" f missing && err "lock file absent on child"
return 1 }
fi
# parent instance of xbmk, so continue.
xbmk_parent_check_tmp()
{
export TMPDIR="/tmp" export TMPDIR="/tmp"
xbmklist="`mktemp || err "can't make tmplist"`" || err xbmklist="`mktemp || err "can't make tmplist"`" || err
@@ -129,32 +165,6 @@ xbmk_set_env()
"'$xbtmp' existed previously (possible race condition)"; : "'$xbtmp' existed previously (possible race condition)"; :
done < "$xbmklist" || err "Couldn't read xbmklist: '$xbmklist'" done < "$xbmklist" || err "Couldn't read xbmklist: '$xbmklist'"
x_ rm -f "$xbmklist" x_ rm -f "$xbmklist"
[ -f "$xbmklock" ] && err "'$xbmklock' exists. Is a build running?"
printf "%s\n" "$xbtmp" > "$xbmklock" || \
err "cannot create '$xbmklock'"; :
export XBMK_CACHE="$xbmkpwd/cache"
[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \
err "cachedir '$xbmkpwd/cache' is a symlink"
[ ! -e "$XBMK_CACHE" ] || \
[ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; :
export PATH="$XBMK_CACHE/xbmkpath:$XBMK_CACHE/gnupath:$PATH"
xbmkpath="$PATH"
# 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"
[ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y"
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
xbmk_set_version
export LOCALVERSION="-$projectname-${version%%-*}"
remkdir "$xbtmp" "$xbloc" "$XBMK_CACHE/gnupath" "$XBMK_CACHE/xbmkpath"
xbmk_set_pyver
} }
xbmk_set_threads() xbmk_set_threads()