diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2015-07-13 19:05:38 +0200 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2015-07-13 19:05:38 +0200 |
commit | becb5a23607e5a3396b548a1eb9f616452a1cb93 (patch) | |
tree | 5a534e7ba552941855feb622261e2a9ffd9c621d | |
parent | 88d511fadb2a995bff2d3f82c0114f1c562c716a (diff) | |
download | DHG_packages-becb5a23607e5a3396b548a1eb9f616452a1cb93.tar.gz |
New script: what-to-build.pl
This shows a few untagged repositories...
-rw-r--r-- | README.md | 14 | ||||
-rwxr-xr-x | what-to-build.pl | 37 |
2 files changed, 49 insertions, 2 deletions
@@ -62,8 +62,18 @@ the Debian source package name: In the full debian version, `:` and `~` are replaced by `_`. -Useful tools ------------- +Scripts in this repository +-------------------------- + + * `./what-to-build.pl`. + + This script expects to be run with any number of directories as arguments, + and defaults to `p/*/`. It prints the name of those directories that contain a + package that is to be released (i.e. marked for upload, but not yet tagged). + + +Useful general tools +-------------------- * `origtargz`: diff --git a/what-to-build.pl b/what-to-build.pl new file mode 100755 index 000000000..4c63cbaaa --- /dev/null +++ b/what-to-build.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my @dirs = @ARGV; + +unless (@dirs) { + @dirs = glob 'p/*/'; +} + +my @to_build; + +my %tags; +open TAGS, '-|', 'git tag -l' or die @!; +while (<TAGS>) { chomp; $tags{$_}++ }; +close TAGS or die @!; + +for my $dir (@dirs) { + my $changelog = "$dir/debian/changelog"; + next unless -r $changelog; + open CHANGELOG, '<', $changelog or die @!; + my $firstline = <CHANGELOG>; + if ($firstline =~ m/([\w-]+) \(([\w:~.+-]+)\) (\w+);/) { + my ($source, $version, $suite) = ($1, $2, $3); + my $tag = sprintf "%s_v%s", $source, $version; + next if ($suite eq "UNRELEASED"); + next if ($tags{$tag}); + printf "%s\n", $dir; + } else { + printf STDERR "Cannot parse %s:\n%s", $changelog, $firstline; + next + } +} + + + |