summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xinfra/get-suites26
2 files changed, 27 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 8f9a84f..3d9319a 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ PERLMODULES=Debian/Dgit.pm
INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \
dgit-repos-policy-debian dgit-repos-admin-debian \
dgit-repos-policy-trusting
-INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap
+INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap get-suites
INFRA_PERLMODULES=Debian/Dgit/Policy/Debian.pm
all:
diff --git a/infra/get-suites b/infra/get-suites
new file mode 100755
index 0000000..c5a4c56
--- /dev/null
+++ b/infra/get-suites
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -e
+set -o pipefail
+
+srvdir=/srv/dgit.debian.org
+dgitlive=${DGIT_TEST_INTREE-$srvdir/dgit-live}
+output=${DGIT_GETSUITES_OUTPUT-$srvdir/data/suites}
+
+export PERLLIB="$dgitlive${PERLLIB+:}${PERLLIB}"
+
+$dgitlive/dgit archive-api-query /suites | perl -we '
+ use strict;
+ use JSON;
+ undef $/;
+ my $json = <STDIN>;
+ die $! if STDIN->error;
+ my $items = decode_json $json;
+ foreach my $item (@$items) {
+ next unless ($item->{archive}//"") eq "ftp-master";
+ next unless ($item->{codename});
+ print $item->{codename}, "\n" or die $!;
+ }
+ flush STDOUT or die $!;
+' >$output.new
+
+mv -f $output.new $output