diff options
author | Daniel Stenberg <daniel@haxx.se> | 2011-08-21 15:36:52 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2011-08-21 15:40:14 +0200 |
commit | 2d9a5acff5081303b7d4106875d42cce7fce043d (patch) | |
tree | a3d33e066d59b1075031424bd88e6f6e3381e543 /git2changes.pl | |
parent | 440b5d488a7325efb4b026f1295c36444727cdbd (diff) | |
download | c-ares-2d9a5acff5081303b7d4106875d42cce7fce043d.tar.gz c-ares-2d9a5acff5081303b7d4106875d42cce7fce043d.tar.bz2 c-ares-2d9a5acff5081303b7d4106875d42cce7fce043d.zip |
CHANGES: generate from script
The CHANGES file is now generated automatically with 'git2changes.pl',
invoked by the maketgz script which is used to build release archives.
The former human edited CHANGES file was renamed to CHANGES.0 in git.
Diffstat (limited to 'git2changes.pl')
-rwxr-xr-x | git2changes.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/git2changes.pl b/git2changes.pl new file mode 100755 index 0000000..21880b7 --- /dev/null +++ b/git2changes.pl @@ -0,0 +1,77 @@ +#!/usr/bin/perl + +# git log --pretty=fuller --no-color --date=short --decorate=full + +my @mname = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ); + +sub nicedate { + my ($date)=$_; + + if($date =~ /(\d\d\d\d)-(\d\d)-(\d\d)/) { + return sprintf("%d %s %4d", $3, $mname[$2-1], $1); + } + return $date; +} + +print +' Changelog for the c-ares project. Generated with git2changes.pl +'; + +my $line; +my $tag; +while(<STDIN>) { + my $l = $_; + + if($l =~/^commit ([[:xdigit:]]*) ?(.*)/) { + $co = $1; + my $ref = $2; + if ($ref =~ /refs\/tags\/c[-]*ares-([0-9._]*)/) { + $tag = $1; + $tag =~ s/_/./g; + } else { + $tag = ''; + } + } + elsif($l =~ /^Author: *(.*) +</) { + $a = $1; + } + elsif($l =~ /^Commit: *(.*) +</) { + $c = $1; + } + elsif($l =~ /^CommitDate: (.*)/) { + $date = nicedate($1); + } + elsif($l =~ /^( )(.*)/) { + my $extra; + if ($tag) { + # Version entries have a special format + print "\nVersion " . $tag." ($date)\n"; + $oldc = ""; + $tag = ""; + } + if($a ne $c) { + $extra=sprintf("\n- [%s brought this change]\n\n ", $a); + } + else { + $extra="\n- "; + } + if($co ne $oldco) { + if($c ne $oldc) { + print "\n$c ($date)$extra"; + } + else { + print "$extra"; + } + $line =0; + } + + $oldco = $co; + $oldc = $c; + $olddate = $date; + if($line++) { + print " "; + } + print $2."\n"; + } +} |