summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-15 11:23:47 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-28 12:45:38 +0100
commitd7a62f56ca2269cd39b255f8397fd68adc4a16f0 (patch)
tree2b04f5680aa500d7366eb8e3d6f8278aba1a8ed4
parent04f06d58825cb30e66e1befd198bffaf85c17a9d (diff)
dgit: Split out default_from_access_cfg
No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xdgit26
1 files changed, 17 insertions, 9 deletions
diff --git a/dgit b/dgit
index 40662b1..769e48e 100755
--- a/dgit
+++ b/dgit
@@ -943,6 +943,20 @@ sub access_forpush () {
return $access_forpush;
}
+sub default_from_access_cfg ($$$;$) {
+ my ($var, $keybase, $defval, $permit_re) = @_;
+ return if defined $$var;
+
+ $$var = access_cfg("$keybase-newer", 'RETURN-UNDEF');
+ $$var = undef if $$var && $$var !~ m/^$permit_re$/;
+
+ $$var //= access_cfg($keybase, 'RETURN-UNDEF');
+ $$var //= $defval;
+
+ badcfg f_ "unknown %s \`%s'", $keybase, $$var
+ if defined $permit_re and $$var !~ m/$permit_re/;
+}
+
sub pushing () {
confess +(__ 'internal error').' '.Dumper($access_forpush)," ?" if
defined $access_forpush and !$access_forpush;
@@ -7584,16 +7598,10 @@ sub parseopts_late_defaults () {
$$vr = $v;
}
- if (!defined $cleanmode) {
+ {
local $access_forpush;
- $cleanmode = access_cfg('clean-mode-newer', 'RETURN-UNDEF');
- $cleanmode = undef if $cleanmode && $cleanmode !~ m/^$cleanmode_re$/;
-
- $cleanmode //= access_cfg('clean-mode', 'RETURN-UNDEF');
- $cleanmode //= 'dpkg-source';
-
- badcfg f_ "unknown clean-mode \`%s'", $cleanmode unless
- $cleanmode =~ m/^$cleanmode_re$/;
+ default_from_access_cfg(\$cleanmode, 'clean-mode', 'dpkg-source',
+ $cleanmode_re);
}
$buildproductsdir //= access_cfg('build-products-dir', 'RETURN-UNDEF');