diff options
Diffstat (limited to 'bin/muffle')
-rwxr-xr-x | bin/muffle | 15 |
1 files changed, 5 insertions, 10 deletions
@@ -81,18 +81,13 @@ timed() { echo 0 > "$STATUS_F" { - { "$@" || echo $? > "$STATUS_F"; } | timed | pre out > "$OUT" -} 2>&1 | timed | pre err > "$ERR" + { "$@" || echo $? > "$STATUS_F"; } | pre -n out | timed > "$OUT" +} 2>&1 | pre -n err | timed > "$ERR" STATUS="$(cat "$STATUS_F")" if [ "$INVERT" = false -a "$STATUS" != 0 ] || [ "$INVERT" = true -a "$STATUS" = 0 ]; then - cat "$OUT" "$ERR" | - sort -k2 | while read -r line; do - if [ "$(printf '%s\n' "$line" | cut -d' ' -f1)" = 'out:' ]; then - printf '%s\n' "$line" | cut -d' ' -f3- >&1 - else - printf '%s\n' "$line" | cut -d' ' -f3- >&2 - fi - done + sort -m "$OUT" "$ERR" | cut -d' ' -f2- | awk '{ + print substr($0, length($1) + 2) > "/dev/std" $1 + }' exit "$STATUS" fi |