summaryrefslogtreecommitdiffstats
path: root/.github/workflows/gen_release.pl
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/gen_release.pl')
-rwxr-xr-x.github/workflows/gen_release.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/.github/workflows/gen_release.pl b/.github/workflows/gen_release.pl
new file mode 100755
index 0000000..9a108ce
--- /dev/null
+++ b/.github/workflows/gen_release.pl
@@ -0,0 +1,40 @@
+#!/usr/bin/perl
+
+my $body_path = shift or die "Need a file name to store the release body";
+
+my $ver;
+
+open IN, "configure.ac" or die;
+while (<IN>) {
+ if (m/^[^\#]*AC_INIT\s*\(\s*\[\s*zbar\s*\]\s*,\s*\[(\d+[\.\d]+)/) {
+ $ver=$1;
+ last;
+ }
+}
+close IN or die;
+
+die if (!$ver);
+
+sub gen_version() {
+ print "Generating release for version $ver\n";
+
+ open IN, "ChangeLog" or return "error opening ChangeLog";
+ open OUT, ">$body_path" or return "error creating $body_path";
+ my $start=1;
+ while (<IN>) {
+ if ($start) {
+ print OUT $_;
+ $start = 0;
+ next;
+ }
+ last if (m/^\S/);
+ print OUT $_ or return "error writing to $body_path";
+ }
+ close OUT or return "error closing $body_path";
+
+ return "";
+}
+
+my $ret = gen_version();
+
+die($ret) if ($ret ne "");