summaryrefslogtreecommitdiff
path: root/include/init.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/init.sh')
-rw-r--r--include/init.sh12
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
}