diff options
author | Jan Steffens <jan.steffens@gmail.com> | 2011-03-24 13:30:15 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-03-25 02:27:56 +0100 |
commit | 14474a32c90b2202f1faf69ea20abbcdedfe4c29 (patch) | |
tree | ae8411bf96c33a53b4af0e05a623be9fa83339b4 | |
parent | e68e994eb2c32c4b7ad5288f8f4b8809e1c39c9b (diff) | |
download | pacman-14474a32c90b2202f1faf69ea20abbcdedfe4c29.tar.gz pacman-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.in | 10 |
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) |