diff options
Diffstat (limited to 'extended/parselog.perl')
-rwxr-xr-x | extended/parselog.perl | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/extended/parselog.perl b/extended/parselog.perl new file mode 100755 index 0000000..cf8d125 --- /dev/null +++ b/extended/parselog.perl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w + +use File::Basename; + +##-- parse filename? +if (@ARGV) { + $file = $ARGV[0]; + $base = File::Basename::basename($file); + $base =~ s/\Q_pd-extended_run-automated-builder.txt\E$//; + $base =~ s/^[^a-zA-Z]*//; + $arch = $base; +} else { + $arch = 'unknown'; +} +$ismoo=0; +%class2n =qw(); +%packages =qw(); +while (<>) { + if (m|[Ee]ntering directory\b.*\/moocow\/extended(?!\/)|) { #/ + $ismoo=1; + next; + } + next if (!$ismoo); + + if (m/^\(moocow/i || m/MOOCOW_BUILD_VERSION/) { + print "DEBUG: $_"; + } + elsif (m|[Ee]ntering directory\b.*\/moocow\/([^\/]*)$|) { + $extdir = $1; + chomp($extdir); + $extdir =~ s/\'$//; + #print "DIR: $extdir\n"; + } + elsif (m|install(?:.*?)\s+(\S+)\s+(?:\S*)/moocow/extended/build.moo/(.*)$|) { + ($file,$instdir) = ($1,$2); + $file =~ s/[\'\"]//g; + $instdir =~ s/[\'\"]//g; + $instdir =~ s/$file$//; + if ($file =~ /^(.*)(\.[^\.]*)$/) { + ($base,$ext) = ($1,$2); + } else { + ($base,$ext) = ($file,''); + } + $class = 'UNK'; + if ($instdir =~ m|\bdoc/5\.reference\b|) { + $class = 'DOC'; + } + elsif ($ext eq '.pd' && $instdir =~ m/\b(?:externs|extra)\b/) { + $class = 'PAT'; + } + elsif ($instdir =~ m/\b(?:externs|extra)\b/) { + $class = 'EXT'; + } + $class2n{$class}++; + $packages{$extdir}=1; + print sprintf("INSTALL %-3s %10s %-20s %-12s %s\n", $class, $extdir, $base, $ext, $instdir); + } + elsif (/[Ll]eaving directory\b.*\/moocow\/extended(?!\/)/) { $ismoo=0; } #/ +} + +##-- summarize +%class2name = (EXT=>'externals', PAT=>'patches', DOC=>'docs', UNK=>'unknown'); +@summary = + (sprintf("%-32s: ", $arch), + join(', ', + (sprintf("%2d packages", scalar(keys(%packages)))), + (map { sprintf("%2d", ($class2n{$_}||0))." ".($class2name{$_}||$_) } qw(EXT PAT DOC UNK)), + ), + "\n", + ); +print STDERR @summary; +print @summary; |