mirror of
				https://github.com/libssh2/libssh2.git
				synced 2025-11-03 22:13:11 +03:00 
			
		
		
		
	Starting now, the NEWS file is generated from git using the git2news.pl script. This makes it always accurate and up-to-date, even for daily snapshots etc.
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 libssh2 project. Generated with git2news.pl
 | 
						|
';
 | 
						|
 | 
						|
my $line;
 | 
						|
my $tag;
 | 
						|
while(<STDIN>) {
 | 
						|
    my $l = $_;
 | 
						|
 | 
						|
    if($l =~/^commit ([[:xdigit:]]*) ?(.*)/) {
 | 
						|
        $co = $1;
 | 
						|
        my $ref = $2;
 | 
						|
        if ($ref =~ /refs\/tags\/(libssh2-|VERSION\.)([0-9._]*)/) {
 | 
						|
            $tag = $2;
 | 
						|
        } 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";
 | 
						|
    }
 | 
						|
}
 |