#!/usr/bin/perl -w # # Author: Thomas Jensen # Date created: July 12, 1999 (Monday, 13:14h) # Language: Perl 5 # Version: $Id: create_changelog.pl,v 1.4 1999/09/10 17:33:32 tsjensen Exp tsjensen $ # # History: # # $Log: create_changelog.pl,v $ # Revision 1.4 1999/09/10 17:33:32 tsjensen # Renamed current snapshot archive file to boxes-SNAP-latest.tar.gz # Added "milestones": Draw horizontal ruler at particular times (v1 out etc.) # # Revision 1.3 1999/08/18 18:41:41 tsjensen # Added HTML conversions for '&' and eacute # Removing path from file name # Changed introductory text # # Revision 1.2 1999/07/12 18:03:14 tsjensen # Moved "List of Files" from top to bottom of page # Many modifications on the page's appearance # In log messages, lines which start with a lower case character are # not preceded by a
, thus concatenating lines which belong together. # # Revision 1.1 1999/07/12 12:28:46 tsjensen # Initial revision #______________________________________________________________________________ #============================================================================== @files = @ARGV; $#files >= 0 or die "no input files"; %milestones = ( "2000-03-17 23:51:43" => "VERSION 1.0.1 RELEASED", "1999-08-22 11:37:27" => "VERSION 1.0 RELEASED", "1999-06-25 18:52:28" => "FIRST BETA RELEASED" ); print ' boxes - Change Log This page is automatically updated whenever a few of the files listed below are checked in, so it is very up-to-date. It might already show changes which are not even in the current snapshot yet.

Chronological Change Log

'; %cl = (); foreach $dat (sort @files) { @tmp = `rlog $dat`; $start = 0; $rev = ""; $auth = ""; $datum = ""; @desc = (); for ($i=0; $i<=$#tmp; ++$i) { if ($start == 0) { next unless $tmp[$i] =~ /^----------------------------$/; $start = 1; next; } if ($tmp[$i] =~ /^date: ([^;]*);/) { $datum = $1; } if ($tmp[$i] =~ /^revision ([0-9]\.[0-9]+)/) { $rev = $1; } if ($tmp[$i] =~ /author: ([^;]*);/) { $auth = $1; } if ($tmp[$i] !~ /^revision ([0-9]\.[0-9]+)/ && $tmp[$i] !~ /^date: ([^;]*);/) { $tmp[$i] =~ s/&/\&/g; $tmp[$i] =~ s//\>/g; $tmp[$i] =~ s/ü/\ü/g; $tmp[$i] =~ s/ö/\ö/g; $tmp[$i] =~ s/ä/\ä/g; $tmp[$i] =~ s/Ü/\Ü/g; $tmp[$i] =~ s/Ö/\Ö/g; $tmp[$i] =~ s/Ä/\Ä/g; $tmp[$i] =~ s/ß/\ß/g; $tmp[$i] =~ s/é/\é/g; $tmp[$i] =~ s/"/\"/g; chop $tmp[$i]; if ($tmp[$i] =~ /^Initial revision$/) { $tmp[$i] = "".$tmp[$i].""; } if (@desc > 0 && $tmp[$i] !~ /^[a-zäöü]/ && $tmp[$i] !~ /^[-=]{10}/) { $tmp[$i] = "
".$tmp[$i]; } push @desc, $tmp[$i]."\n"; } if ($tmp[$i] =~ /^----------------------------$/ || $tmp[$i] =~ /^===============================================/) { $desc[$#desc] = ""; $dat =~ s/^.*\///; $cl{$datum."; ".$dat." ".$rev." (".$auth.")"} = [ @desc ]; @desc = (); } } } foreach $line (reverse sort keys %cl) { foreach (keys %milestones) { if ($line =~ /^$_/) { print "
\n\n
\n
"; print $milestones{$_}, "
\n"; print "
\n\n
\n"; } } print "
$line\n"; print "
", @{$cl{$line}}, "

\n\n"; } print '


List of Files

'; foreach $dat (sort @files) { next unless -r $dat; @tmp = `rlog $dat`; @foo = (); $start = 0; @desc = (); @foo = grep /^head: /, @tmp; $rev = $foo[0]; $rev =~ s/^head: //; chop $rev; for ($i=0; $i<$#tmp; ++$i) { if ($start) { if ($start == 2) { last; } else { if ($tmp[$i] =~ /^----------------------------$/) { $start = 2; } else { push @desc, $tmp[$i]; } } } else { $start = 1 if ($tmp[$i] =~ /^description:$/); } } print "
$dat ($rev)\n"; print "
", @desc; } print '
'; #EOF vim: set sw=4: