libssh2

Форк
0
/
git2news.pl 
78 строк · 1.7 Кб
1
#!/usr/bin/env perl
2
# Copyright (C) The libssh2 project and its contributors.
3
# SPDX-License-Identifier: BSD-3-Clause
4

5
# git log --pretty=fuller --no-color --date=short --decorate=full
6

7
my @mname = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
8
             'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
9

10
sub nicedate {
11
    my ($date)=$_;
12

13
    if($date =~ /(\d\d\d\d)-(\d\d)-(\d\d)/) {
14
        return sprintf("%d %s %4d", $3, $mname[$2-1], $1);
15
    }
16
    return $date;
17
}
18

19
print
20
'   Changelog for the libssh2 project. Generated with git2news.pl
21
';
22

23
my $line;
24
my $tag;
25
while(<STDIN>) {
26
    my $l = $_;
27

28
    if($l =~/^commit ([[:xdigit:]]*) ?(.*)/) {
29
        $co = $1;
30
        my $ref = $2;
31
        if ($ref =~ /refs\/tags\/(libssh2-|VERSION\.)([0-9._]*)/) {
32
            $tag = $2;
33
        } else {
34
            $tag = '';
35
        }
36
    }
37
    elsif($l =~ /^Author: *(.*) +</) {
38
        $a = $1;
39
    }
40
    elsif($l =~ /^Commit: *(.*) +</) {
41
        $c = $1;
42
    }
43
    elsif($l =~ /^CommitDate: (.*)/) {
44
        $date = nicedate($1);
45
    }
46
    elsif($l =~ /^(    )(.*)/) {
47
        my $extra;
48
        if ($tag) {
49
            # Version entries have a special format
50
            print "\nVersion " . $tag." ($date)\n";
51
            $oldc = "";
52
            $tag = "";
53
        }
54
        if($a ne $c) {
55
            $extra=sprintf("\n- [%s brought this change]\n\n  ", $a);
56
        }
57
        else {
58
            $extra="\n- ";
59
        }
60
        if($co ne $oldco) {
61
            if($c ne $oldc) {
62
                print "\n$c ($date)$extra";
63
            }
64
            else {
65
                print "$extra";
66
            }
67
            $line =0;
68
        }
69

70
        $oldco = $co;
71
        $oldc = $c;
72
        $olddate = $date;
73
        if($line++) {
74
            print "  ";
75
        }
76
        print $2."\n";
77
    }
78
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.