add nextrelease command to add version heading to changelog
Graham Knop [Thu, 21 Aug 2014 14:01:11 +0000 (10:01 -0400)]
helpers/add-changelog-heading [new file with mode: 0755]
lib/Distar.pm

diff --git a/helpers/add-changelog-heading b/helpers/add-changelog-heading
new file mode 100755 (executable)
index 0000000..85a0f9d
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env perl
+use strict;
+use warnings FATAL => 'all';
+
+my $version = shift;
+my @ymd = (gmtime)[5,4,3];
+$ymd[0] += 1900;
+$ymd[1] += 1;
+my $changes_line = sprintf "%s - %i-%02i-%02i\n", $version, @ymd;
+
+foreach my $changes (@ARGV) {
+    print "Adding $version heading to $changes.\n";
+    open my $fh, '+<', $changes
+      or die "Can't open $changes: $!";
+    my $content = '';
+    my $done;
+    local $/ = $/;
+    while (<$fh>) {
+        if ($done) {
+            undef $/;
+        }
+        elsif (/^v?(\d+(?:\.\d+)*)(\s+|$)/) {
+            if ($1 eq $version) {
+                die "$changes already has an entry for $version!\n";
+            }
+            else {
+                die "No changelog entries found before $1!\n";
+            }
+        }
+        elsif (/^\s+[-*+#]/) {
+            $content .= $changes_line;
+            $done = 1;
+        }
+        $content .= $_;
+    }
+
+    seek $fh, 0, 0;
+    truncate $fh, 0;
+    print { $fh } $content;
+    close $fh;
+}
index ae72c84..f8e18e7 100644 (file)
@@ -169,6 +169,9 @@ END
 disttest: distmanicheck
 distmanicheck: create_distdir
        cd $(DISTVNAME) && $(ABSPERLRUN) "-MExtUtils::Manifest=manicheck" -e "exit manicheck"
+nextrelease:
+       $(ABSPERLRUN) Distar/helpers/add-changelog-heading $(VERSION) Changes
+       git add -p Changes
 
 END
     if (open my $fh, '<', 'maint/Makefile.include') {