From dc794ede54bb743e3d2ef1c096db38377e3d8b0f Mon Sep 17 00:00:00 2001 From: rsc Date: Sat, 26 Nov 2005 15:36:47 +0000 Subject: new isum --- dist/isum | 5 +--- dist/isum.awk | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 dist/isum.awk (limited to 'dist') diff --git a/dist/isum b/dist/isum index 6b04242a..4f134a2c 100755 --- a/dist/isum +++ b/dist/isum @@ -1,7 +1,4 @@ #!/bin/sh -# LC_CTYPE=C works around stupidity in GNU grep -# With LC_CTYPE=en_US.UTF-8 this is MUCH slower. -LC_CTYPE=C export LC_CTYPE +awk -f $PLAN9/dist/isum.awk $PLAN9/install.log -egrep -v '^(\+ )?(9a|9c|9l|9ar|install|cp|cd|rm|mv|mk|9 yacc|9 lex|for i|do|done|if \[|fi|else|then)([ ]|$)|^[ ]+(\(cd|mk|gcc|cpp|cp)( |$)|^[ar] - |up to date|nothing to see here|assuming it will be an archive|loop not entered at top|conflicts:|nodes\(%e\)|packed transitions|Add these|PLAN9=|PATH=|^[ ]*$|^SYSNAME=|^OBJTYPE=|^sh |^cmp |^\./o\.rgb|^rc \./manweb' $PLAN9/install.log diff --git a/dist/isum.awk b/dist/isum.awk new file mode 100644 index 00000000..db782c8b --- /dev/null +++ b/dist/isum.awk @@ -0,0 +1,92 @@ +# Summarize the installation log, printing errors along with +# enough context to make sense of them. + +BEGIN { +# print verbose + cd = "" + out = "/dev/stdout"; +} + +debug { print "# " $0 } + +/^$/ { next } + +/^\* /{ + if(debug) print "% mark" + print >out + fflush(out) + cmd = "" + printtabs = 1 # print indented lines immediately following + errors = 0 + next +} + +/^ / && printtabs { + print >out + fflush(out) + next +} + +{ printtabs = 0 } + +/^(9a|9c|9l|9ar|9?install|cp|rm|mv|mk|9 yacc|9 lex|9 rc|do|for i|if|mk|gcc|cpp|cp|sh|cmp|rc|\.\/o)($|[^:])/ { + if(debug) print "% start" + errors = 0 + cmd = "" + if(!verbose) + cmd = cmd cd + cmd = cmd $0 "\n" + next +} + +/^cd / { + if(debug) print "% cd" + errors = 0 + if(verbose){ + print >out + fflush(out) + } + cd = $0 "\n" + cmd = "" + next +} + +{ + cmd = cmd $0 "\n" +} + +errors { + if(debug) print "% errors" + printf "%s", cmd >out + fflush(out) + cmd = "" + next +} + +/^( |then|else|fi|done|[ar] - [^ ]*\.o$)/ { + next +} + +/^(up to date|nothing to see|assuming it will be|loop not entered|conflicts:)/ { + if(debug) print "% skip1" + next +} + +/is up to date/ { + next +} + +/(nodes\(%e\)|packed transitions)/ { + if(debug) print "% skip2" + next +} + +{ + # unexpected line + if(debug) print "% errors1" + errors = 1 + printf ">>> %s", cmd >out + fflush(out) + cmd = "" +} + -- cgit v1.2.3