[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.5.15-6-g7097b19



The following commit has been merged in the master branch:
commit 7d8117deb21a4b0bf95986cdf8068b803978381f
Author: Niels Thykier <niels@thykier.net>
Date:   Sat Jul 27 22:22:54 2013 +0200

    private: Add utility to generate the tag summary
    
    Signed-off-by: Niels Thykier <niels@thykier.net>

diff --git a/private/generate-tag-summary b/private/generate-tag-summary
new file mode 100644
index 0000000..2f6702a
--- /dev/null
+++ b/private/generate-tag-summary
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use autodie;
+
+my (%added, %removed);
+my ($commit_range) = @ARGV;
+die "Usage: $0 tag..HEAD\n"
+    unless $commit_range;
+
+open(my $fd, '-|', 'git', 'diff', $commit_range, '--', 'checks/*.desc');
+while ( my $line = <$fd>) {
+    chomp($line);
+    next unless $line =~ m{ \A ([\+-]) Tag: \s*+ ([^ ]++) \s*+ \Z}xsm;
+    my ($change, $tag) = ($1, $2);
+    if ($change eq '+') {
+        $added{$tag} = 1;
+    } else {
+        $removed{$tag} = 1;
+    }
+}
+close($fd);
+
+for my $tag (keys(%added)) {
+    if (exists($removed{$tag})) {
+        # Added and removed?  More likely, the tag was moved between
+        # two files.
+        delete($added{$tag});
+        delete($removed{$tag});
+    }
+}
+
+if (not %added and not %removed) {
+    print STDERR "No tags were added or removed\n";
+    exit(0);
+}
+
+print "  * Summary of tag changes:\n";
+if (%added) {
+    print "    + Added:\n";
+    for my $tag (sort(keys(%added))) {
+        print "      - $tag\n";
+    }
+}
+if (%removed) {
+    print "    + removed:\n";
+    for my $tag (sort(keys(%removed))) {
+        print "      - $tag\n";
+    }
+}

-- 
Debian package checker


Reply to: