summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Steffens <jan.steffens@gmail.com>2011-03-24 13:30:15 +0100
committerDan McGee <dan@archlinux.org>2011-03-24 20:27:56 -0500
commit14474a32c90b2202f1faf69ea20abbcdedfe4c29 (patch)
treeae8411bf96c33a53b4af0e05a623be9fa83339b4
parente68e994eb2c32c4b7ad5288f8f4b8809e1c39c9b (diff)
downloadpacman-14474a32c90b2202f1faf69ea20abbcdedfe4c29.tar.xz
Make log redirection saner
My main motivation was to remove the "sync", which can stall for minutes on a busy machine (FS#23378). I also cleaned up the redirection. Signed-off-by: Jan Steffens <jan.steffens@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in10
1 files changed, 5 insertions, 5 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index bb7616cf..eb7c3701 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -794,15 +794,15 @@ run_function() {
# ensure overridden package variables survive tee with split packages
logpipe=$(mktemp -u "$startdir/logpipe.XXXXXXXX")
mkfifo "$logpipe"
- exec 3>&1
tee "$BUILDLOG" < "$logpipe" &
- exec 1>"$logpipe" 2>"$logpipe"
+ local teepid=$!
+
restoretrap=$(trap -p ERR)
trap 'error_function $pkgfunc' ERR
- $pkgfunc 2>&1
+ $pkgfunc &>"$logpipe"
eval $restoretrap
- sync
- exec 1>&3 2>&3 3>&-
+
+ wait $teepid
rm "$logpipe"
else
restoretrap=$(trap -p ERR)