diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2022-12-11 18:37:44 +0000 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2022-12-11 19:59:00 +0000 |
commit | eca692086b97954163cbf7b4e4a151091f9413b1 (patch) | |
tree | 1f059f396f3a5c153bcd220878ba613aeb57fe8c /dgit | |
parent | 7110ae757867b1f41ac83868f3144350c91dbe67 (diff) |
dgit: Break out some_push_alias
Preparation for rpush-built, rpush-source.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-x | dgit | 26 |
1 files changed, 16 insertions, 10 deletions
@@ -5111,22 +5111,28 @@ sub cmd_push_built { } sub cmd_push { - my $spec = cfg 'dgit.default.push-subcmd'; + some_push_alias('push', \&cmd_push_source, \&cmd_push_built, + [qw(dgit.default.push-subcmd)], sub { + my ($spec) = @_; + f_ 'dgit push, but dgit.default.push-subcmd set to %s', $spec + }); +} +sub some_push_alias ($$@) { + my ($verb, $if_source, $if_built, $cfgs, $badvalue_msg) = @_; + my $spec = cfg @$cfgs; if ($spec eq 'source') { - cmd_push_source(); + $if_source->(); } elsif ($spec eq 'built') { - cmd_push_built(); + $if_built->(); } elsif ($spec eq 'warn,built') { - print STDERR __ <<'END'; -warning: "dgit push" currently means "dgit push-built" (by default) -warning: but is going to change to "dgit push-source". See dgit!(1). + print STDERR f_ <<'END', $verb,$verb,$verb; +warning: "dgit %s" currently means "dgit %s-built" (by default) +warning: but is going to change to "dgit %s-source". See dgit!(1). END - cmd_push_built(); - } elsif ($spec eq 'reject') { - fail f_ 'dgit push, but dgit.default.push-subcmd set to %s', $spec; + $if_built->(); } else { - fail f_ 'bad value for dgit.default.push-subcmd: %s', $spec; + fail $badvalue_msg->($spec); } } |