summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2016-11-06 18:26:01 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2016-11-06 18:27:30 +0000
commit5dd559b5eaedf57a1081c03ab8602669c9e72e4a (patch)
tree8a198767db4cebd216514217b1a752a861306784 /dgit
parent0e7753f7935b97bb3f7e3921651006e41bff0cca (diff)
dgit: config: Allow dgit-suite.PATTERN.distro
This is going to be useful for *-security. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit16
1 files changed, 14 insertions, 2 deletions
diff --git a/dgit b/dgit
index e6ab29c..41b7ac8 100755
--- a/dgit
+++ b/dgit
@@ -36,6 +36,7 @@ use Digest::SHA;
use Digest::MD5;
use List::Util qw(any);
use List::MoreUtils qw(pairwise);
+use Text::Glob qw(match_glob);
use Carp;
use Debian::Dgit;
@@ -694,8 +695,19 @@ sub access_basedistro () {
if (defined $idistro) {
return $idistro;
} else {
- return cfg("dgit-suite.$isuite.distro",
- "dgit.default.distro");
+ my $def = cfg("dgit-suite.$isuite.distro", 'RETURN-UNDEF');
+ return $def if defined $def;
+ foreach my $src (@gitcfgsources, 'internal') {
+ my $kl = $src eq 'internal' ? \%defcfg : $gitcfgs{$src};
+ next unless $kl;
+ foreach my $k (keys %$kl) {
+ next unless $k =~ m#^dgit-suite\.(.*)\.distro$#;
+ my $dpat = $1;
+ next unless match_glob $dpat, $isuite;
+ return $kl->{$k};
+ }
+ }
+ return cfg("dgit.default.distro");
}
}