diff --git a/tools/tools/whereintheworld/Makefile b/tools/tools/whereintheworld/Makefile new file mode 100644 index 000000000000..876a318c3f44 --- /dev/null +++ b/tools/tools/whereintheworld/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SCRIPTS= whereintheworld.pl + +.include diff --git a/tools/tools/whereintheworld/whereintheworld.pl b/tools/tools/whereintheworld/whereintheworld.pl new file mode 100644 index 000000000000..349c0d983169 --- /dev/null +++ b/tools/tools/whereintheworld/whereintheworld.pl @@ -0,0 +1,59 @@ +#!/usr/bin/perl -w +# +# whereintheworld +# Parses "make world" output and summarize where it's been so far. +# +# Bill Fenner 11 January 2000 +# Dag-Erling Smørgrav 09 January 2003 +# +# $Id: whereintheworld,v 1.3 2000/01/28 00:42:32 fenner Exp $ +# $FreeBSD$ +# +use strict; + +my $line; +my $inside = 0; +my @lines = (); +my $thresh = 10; +my $lastwasdash = 0; +my $width = $ENV{COLUMNS} || 80; +my $elided = 0; + +while ($line = <>) { + if ($line =~ /^------------/) { + $inside = !$inside; + print $line unless ($lastwasdash); + $lastwasdash = 1; + @lines = (); + next; + } + if ($inside && $line =~ /^>>>/) { + print $line; + $lastwasdash = 0; + next; + } + if ($line =~ /^=+>/) { + @lines = (); + } + if (length($line) >= $width) { + substr($line, $width - 7) = " [...]\n"; + } + push(@lines, $line); + if ($line =~ /^\*\*\* Error/ && $line !~ /\(ignored\)/) { + print @lines; + while ($line = <>) { + print $line; + } + exit; + } +} + +print shift(@lines); +while (@lines > $thresh) { + shift(@lines); + ++$elided; +} +if ($elided > 0) { + print "[$elided lines elided]\n"; +} +print @lines;