aboutsummaryrefslogtreecommitdiff
path: root/dist
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-11-26 15:36:47 +0000
committerrsc <devnull@localhost>2005-11-26 15:36:47 +0000
commitdc794ede54bb743e3d2ef1c096db38377e3d8b0f (patch)
tree2064bd803c9400d7a189de168e6e455a58c15d98 /dist
parent1282ec7a2e0345d4a61258e9705fe1844480948a (diff)
downloadplan9port-dc794ede54bb743e3d2ef1c096db38377e3d8b0f.tar.gz
plan9port-dc794ede54bb743e3d2ef1c096db38377e3d8b0f.tar.bz2
plan9port-dc794ede54bb743e3d2ef1c096db38377e3d8b0f.zip
new isum
Diffstat (limited to 'dist')
-rwxr-xr-xdist/isum5
-rw-r--r--dist/isum.awk92
2 files changed, 93 insertions, 4 deletions
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 = ""
+}
+