diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2019-06-15 11:23:47 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2019-06-28 12:45:38 +0100 |
commit | d7a62f56ca2269cd39b255f8397fd68adc4a16f0 (patch) | |
tree | 2b04f5680aa500d7366eb8e3d6f8278aba1a8ed4 | |
parent | 04f06d58825cb30e66e1befd198bffaf85c17a9d (diff) |
dgit: Split out default_from_access_cfg
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-x | dgit | 26 |
1 files changed, 17 insertions, 9 deletions
@@ -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'); |