File: blscan

package info (click to toggle)
mksh 59c-41
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,616 kB
  • sloc: ansic: 57,830; sh: 5,991; perl: 2,155; makefile: 112
file content (70 lines) | stat: -rw-r--r-- 2,397 bytes parent folder | download
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 "= ${fn}"
	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/✓[^ ]*/&/g' \
	    -e 's/✓ no-ctty[^ ]*/&/g' \
	    -e 's/?[^ ]*/&/g' \
	    -e 's/⁇[^ ]*/&/g' \
	    -e 's/⁐[^ ]*/&/g' \
	    -e 's/✘[^ ]*/&/g' \
	    -e 's/✗[^ ]*/&/g' \
	    -e 's/☒[^ ]*/&/g' \
	    -e 's/✔[^ ]*/&/g' \
	    -e 's/\( ↑ \)(\([^ ]*\) /\1v[0'$bred';1m\2 /' \
	    -e '1s/^//' -e '1s/  */&| /g' -e '1s/$/   /' \
	    -e '2,$s/  */&| /g' -e 's/$//') <<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