Annotation of embedaddon/bird/tools/cvslog, revision 1.1

1.1     ! misho       1: #!/usr/bin/perl
        !             2: # Process `cvs log' output to get a resonable changelog
        !             3: # (c) 2003--2004 Martin Mares <mj@ucw.cz>
        !             4: 
        !             5: use Digest::MD5;
        !             6: use POSIX;
        !             7: 
        !             8: my %names= (
        !             9:        'mj'    => 'Martin Mares <mj@ucw.cz>',
        !            10:        'feela' => 'Ondrej Filip <feela@network.cz>',
        !            11:        'pavel' => 'Pavel Machek <pavel@ucw.cz>'
        !            12: );
        !            13: 
        !            14: while (<STDIN>) {
        !            15:        chomp;
        !            16:        /^$/ && next;
        !            17:        /^[?]/ && next;
        !            18:        /^RCS file: / || die;
        !            19:        $_ = <STDIN>;
        !            20:        chomp;
        !            21:        my ($file) = /^Working file: (.*)$/ or die;
        !            22:        #print "$file\n";
        !            23:        do {
        !            24:                $_ = <STDIN> or die;
        !            25:        } while (!/^description:/);
        !            26:        $_ = <STDIN>;
        !            27:        for(;;) {
        !            28:                /^======/ && last;
        !            29:                if (/^------/) { $_ = <STDIN>; next; }
        !            30:                /^revision / || die;
        !            31:                $_ = <STDIN>;
        !            32:                my ($author) = /;\s*author:\s*([^;]+)/ or die;
        !            33:                my ($yy,$mm,$dd,$HH,$MM,$SS) = /^date: (....)\/(..)\/(..) (..):(..):(..);/ or die;
        !            34:                my $t = POSIX::mktime($SS,$MM,$HH,$dd,$mm-1,$yy-1900) or die;
        !            35:                my $T = sprintf("%06d", int(($t + 1800)/3600));
        !            36:                $d = "";
        !            37:                while ($_ = <STDIN>) {
        !            38:                        /^(-----|=====)/ && last;
        !            39:                        $d .= "  $_";
        !            40:                }
        !            41:                my $id = "$T:" . Digest::MD5::md5_hex($d);
        !            42:                if (!defined $msg{$id}) {
        !            43:                        $date{$id} = "$yy-$mm-$dd $HH:$MM:$SS";
        !            44:                        $msg{$id} = $d;
        !            45:                        $files{$id} = "";
        !            46:                        $author{$id} = $author;
        !            47:                }
        !            48:                $files{$id} .= "  * $file\n";
        !            49:                #print "\t$id\n";
        !            50:        }
        !            51: }
        !            52: 
        !            53: foreach $id (sort keys %date) {
        !            54:        if (!exists ($names{$author{$id}})) {
        !            55:                die "Unknown commiter $author{$id}";
        !            56:        }
        !            57:        print "### ", $date{$id}, "  ", $names{$author{$id}}, "\n\n";
        !            58:        print $files{$id}, "\n";
        !            59:        print $msg{$id}, "\n";
        !            60: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>