summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-19 01:57:22 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-19 01:57:22 +0000
commite1babed90f59ff09a97ff75793488e0e7b874252 (patch)
treeb840000168bb4243d00a6088a37ad8883517378c
parentc2a0ff7beedc33a80fa2e1eb4d09d7da170b0eb7 (diff)
Quirks mechanism
-rwxr-xr-xdgit20
1 files changed, 17 insertions, 3 deletions
diff --git a/dgit b/dgit
index 5c0ea82..bb1d217 100755
--- a/dgit
+++ b/dgit
@@ -489,16 +489,30 @@ sub cfg {
badcfg "need value for one of: @_";
}
-sub access_distro () {
+sub access_basedistro () {
return cfg("dgit-suite.$isuite.distro",
"dgit.default.distro");
}
+sub access_quirk () {
+ # returns (quirk name, distro to use instead, quirk-specific info)
+ my $basedistro = access_basedistro();
+ return ('none',$basedistro);
+}
+
+sub access_distro () {
+ return (access_quirk())[1];
+}
+
sub access_cfg (@) {
my (@keys) = @_;
+ my $basedistro = access_basedistro();
my $distro = $idistro || access_distro();
- my $value = cfg(map { ("dgit-distro.$distro.$_",
- "dgit.default.$_") } @keys);
+ my $value = cfg(map {
+ ("dgit-distro.$distro.$_",
+ "dgit-distro.$basedistro.$_",
+ "dgit.default.$_")
+ } @keys);
return $value;
}