diff options
Diffstat (limited to 'include/init.sh')
-rw-r--r-- | include/init.sh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/init.sh b/include/init.sh index b8839921..3f813ea7 100644 --- a/include/init.sh +++ b/include/init.sh @@ -17,11 +17,13 @@ xbmkpath="$PATH" err="err_" eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ - datadir version xbmkpwd relname xbmkpwd xbmktmp python pyver`" + datadir version xbmkpwd relname xbmkpwd xbmktmp python pyver xbmklocal`" xbmk_init() { xbmkpwd="`pwd`" || $err "Cannot generate PWD" + xbmklocal="$xbmkpwd/tmp" + export PWD="$xbmkpwd" if [ $# -gt 0 ] && [ "$1" = "dependencies" ]; then @@ -184,6 +186,8 @@ xbmk_git_init() xbmk_create_tmpdir() { + x_ mkdir -p "$xbmklocal" + # unify all temporary files/directories in a single TMPDIR [ -z "${TMPDIR+x}" ] || [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || \ unset TMPDIR @@ -194,6 +198,10 @@ xbmk_create_tmpdir() export TMPDIR="/tmp" export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)" xbmktmp="$TMPDIR" + + # /tmp might be a tmpfs, so for large files we use ./tmp, + # not to be confused with xbmktmp (xbmktmp points to /tmp) + remkdir "$xbmktmp" "$xbmklocal" } xbmk_lock() @@ -219,7 +227,7 @@ xbmk_child_exec() { xbmk_rval=0 ( x_ ./mk "$@" ) || xbmk_rval=1 - rm -Rf "$xbmktmp" || xbmk_rval=1 + rm -Rf "$xbmklocal" "$xbmktmp" || xbmk_rval=1 rm -f lock || xbmk_rval=1 exit $xbmk_rval } |