Upgrade to 1.18.1
[platform/upstream/c-ares.git] / git2changes.pl
1 #!/usr/bin/perl
2
3 # git log --pretty=fuller --no-color --date=short --decorate=full
4
5 my @mname = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
6              'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
7
8 sub nicedate {
9     my ($date)=$_;
10
11     if($date =~ /(\d\d\d\d)-(\d\d)-(\d\d)/) {
12         return sprintf("%d %s %4d", $3, $mname[$2-1], $1);
13     }
14     return $date;
15 }
16
17 print 
18 '   Changelog for the c-ares project. Generated with git2changes.pl
19 ';
20
21 my $line;
22 my $tag;
23 while(<STDIN>) {
24     my $l = $_;
25
26     if($l =~/^commit ([[:xdigit:]]*) ?(.*)/) {
27         $co = $1;
28         my $ref = $2;
29         if ($ref =~ /refs\/tags\/c[-]*ares-([0-9._]*)/) {
30             $tag = $1;
31             $tag =~ s/_/./g;
32         } else {
33             $tag = '';
34         }
35     }
36     elsif($l =~ /^Author: *(.*) +</) {
37         $a = $1;
38     }
39     elsif($l =~ /^Commit: *(.*) +</) {
40         $c = $1;
41     }
42     elsif($l =~ /^CommitDate: (.*)/) {
43         $date = nicedate($1);
44     }
45     elsif($l =~ /^(    )(.*)/) {
46         my $extra;
47         if ($tag) {
48             # Version entries have a special format
49             print "\nVersion " . $tag." ($date)\n";
50             $oldc = "";
51             $tag = "";
52         }
53         if($a ne $c) {
54             $extra=sprintf("\n- [%s brought this change]\n\n  ", $a);
55         }
56         else {
57             $extra="\n- ";
58         }
59         if($co ne $oldco) {
60             if($c ne $oldc) {
61                 print "\n$c ($date)$extra";
62             }
63             else {
64                 print "$extra";
65             }
66             $line =0;
67         }
68
69         $oldco = $co;
70         $oldc = $c;
71         $olddate = $date;
72         if($line++) {
73             print "  ";
74         }
75         print $2."\n";
76     }
77 }