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.awk | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 dist/isum.awk (limited to 'dist/isum.awk') 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