[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: