xbps-src: introduce XBPS_STATEDIR to store state files, logs and others.

XBPS_STATEDIR is created in XBPS_BUILDDIR/.xbps-${sourcepkg}-${version}
and contains logs and state files for all phases, as well as wrappers.

We can now inspect the output from all hooks.
This commit is contained in:
Juan RP 2014-12-11 11:02:22 +01:00
parent 8ad235c69d
commit 6e13dcbaff
11 changed files with 33 additions and 33 deletions

View file

@ -1,21 +1,18 @@
# vim: set ts=4 sw=4 et:
run_func() {
local func="$1" desc="$2" restoretrap= logpipe= logfile= teepid=
local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid=
if [ -d "${wrksrc}" ]; then
logpipe=$(mktemp -u --tmpdir=${wrksrc} .xbps_${XBPS_CROSS_BUILD}_XXXXXXXX.logpipe)
logfile=${wrksrc}/.xbps_${XBPS_CROSS_BUILD}_${func}.log
else
logpipe=$(mktemp -t -u .xbps_${XBPS_CROSS_BUILD}_${func}_${pkgname}_logpipe.XXXXXXX)
logfile=$(mktemp -t .xbps_${XBPS_CROSS_BUILD}_${func}_${pkgname}.log.XXXXXXXX)
fi
: ${funcname:=$func}
logpipe=$(mktemp -u --tmpdir=${XBPS_STATEDIR} ${pkgname}_${XBPS_CROSS_BUILD}_XXXXXXXX.logpipe)
logfile=${XBPS_STATEDIR}/${pkgname}_${XBPS_CROSS_BUILD}_${funcname}.log
msg_normal "${pkgver:-xbps-src}: running ${desc:-${func}} ...\n"
set -E
restoretrap=$(trap -p ERR)
trap 'error_func $func $LINENO' ERR
trap 'error_func $funcname $LINENO' ERR
mkfifo "$logpipe"
tee "$logfile" < "$logpipe" &
@ -176,7 +173,7 @@ run_pkg_hooks() {
hookn=$(basename $f)
hookn=${hookn%.sh}
. $f
run_func hook "$phase hook: $hookn"
run_func hook "$phase hook: $hookn" ${phase}_${hookn}
done
}
@ -400,5 +397,7 @@ setup_pkg() {
exit 0
fi
export XBPS_WRAPPERDIR="${wrksrc}/.xbps/bin"
export XBPS_STATEDIR="${XBPS_BUILDDIR}/.xbps-${sourcepkg}-${version}"
export XBPS_WRAPPERDIR="${XBPS_STATEDIR}/wrappers"
mkdir -p $XBPS_WRAPPERDIR
}

View file

@ -177,10 +177,10 @@ remove_pkg() {
msg_normal "$f: removing 32bit files from destdir...\n"
rm -rf ${_destdir}/${f}-32bit-${version}
fi
rm -f $wrksrc/.xbps_${XBPS_CROSS_BUILD}_${f}_install_done
rm -f $wrksrc/.xbps_${XBPS_CROSS_BUILD}_${f}_prepkg_done
rm -f ${XBPS_STATEDIR}/${f}_${cross}_subpkg_install_done
rm -f ${XBPS_STATEDIR}/${f}_${cross}_prepkg_done
done
rm -f $wrksrc/.xbps_${cross}_install_done
rm -f $wrksrc/.xbps_${cross}_pre_install_done
rm -f $wrksrc/.xbps_${cross}_post_install_done
rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_install_done
rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_pre_install_done
rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_post_install_done
}