1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
# small script for the maintainer to scan all build logs
nl='
'
test $# -ge 1 || set -- /var/cache/pbuilder/result-*/mksh_*.build
for fn in "$@"; do
test -s "$fn" || continue
echo "[1;34;40m= ${fn}[0m"
llc=$(sed --posix -n \
-e '/^D:loglibc:start(\([^)]*\)) \(.*\) initialising$/s//vs=v\1 \2/p' \
-e '/^D:loglibc:final(\([^)]*\)) \(.*\) finishing$/s//vt=v\1 \2/p' \
"$fn" | sed --posix 's/ \([a-z][a-z0-9_]*=\)/\nvv\1/g' | sed --posix \
-e 's!_(\([0-9]*\)_unexpected)f!f/\1u!' \
-e 's/RTCHK/rtchk/g' -e 's/MTEST/mtest/g' \
-e 's/testsuite-failed/ts-fail/g' \
-e 's/passed-but-notty/no-ctty/g' \
-e 's/succeeded-tested/success/g' \
-e 's/_([^) ]*)//' \
-e "s/'/'\\\\''/g" -e 's/=\(.*\)$/='\''\1'\''/')
case $nl$llc in (*"${nl}vs="*"${nl}vs="*)
echo >&2 "W: multiple loglibc:start lines; log is fishy: $fn" ;;
esac
case $nl$llc in (*"${nl}vt="*"${nl}vt="*)
echo >&2 "W: multiple loglibc:final lines; log is fishy: $fn" ;;
esac
vs= vt= vvarch= vvbred= vvsystem=
vvmksh_klibc= vvmksh_musl= vvmksh_dietlibc= vvmksh_glibc=
vvlksh_klibc= vvlksh_musl= vvlksh_dietlibc= vvlksh_glibc=
eval "$llc"
if test -z "$vs"; then
vs=$vt vvarch= vvbred=
fi
if test -z "$vt"; then
vt=$vs vvsystem=
vvmksh_klibc= vvmksh_musl= vvmksh_dietlibc= vvmksh_glibc=
vvlksh_klibc= vvlksh_musl= vvlksh_dietlibc= vvlksh_glibc=
fi
case x$vvbred in
x|x0)
bred=
;;
x1)
bred=';31'
;;
*)
echo >&2 "W: invalid bred ($vvbred); log is fishy: $fn"
bred=';5'
;;
esac
test x"$vs" = x"$vt" || echo >&2 "W: version difference" \
"($vs) vs. ($vt); log is fishy: $fn"
vsn=${vs#v}
(column -ts')' | sed --posix \
-e 's/✓[^ ]*/[1;30;40m&/g' \
-e 's/✓ no-ctty[^ ]*/[0;32;40m&/g' \
-e 's/?[^ ]*/[33;40m&/g' \
-e 's/⁇[^ ]*/[35;40m&/g' \
-e 's/⁐[^ ]*/[36;40m&/g' \
-e 's/✘[^ ]*/[1;31;40m&/g' \
-e 's/✗[^ ]*/[31;40m&/g' \
-e 's/☒[^ ]*/[1;35;40m&/g' \
-e 's/✔[^ ]*/[1;32;40m&/g' \
-e 's/\( ↑ \)(\([^ ]*\) /[1;30;40m\1v[0'$bred';1m\2 /' \
-e '1s/^/[0;4m/' -e '1s/ */&| /g' -e '1s/$/ /' \
-e '2,$s/ */[0m&| /g' -e 's/$/[0m/') <<EOF
sh\libc)system${vvarch:+/$vvarch})klibc)musl)dietlibc)glibc
mksh)$vvsystem)$vvmksh_klibc)$vvmksh_musl)$vvmksh_dietlibc)$vvmksh_glibc
lksh) ↑ ($vsn)$vvlksh_klibc)$vvlksh_musl)$vvlksh_dietlibc)$vvlksh_glibc
EOF
done
|