summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2022-12-11 18:37:44 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2022-12-11 19:59:00 +0000
commiteca692086b97954163cbf7b4e4a151091f9413b1 (patch)
tree1f059f396f3a5c153bcd220878ba613aeb57fe8c /dgit
parent7110ae757867b1f41ac83868f3144350c91dbe67 (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-xdgit26
1 files changed, 16 insertions, 10 deletions
diff --git a/dgit b/dgit
index 7e773d4..2a77988 100755
--- a/dgit
+++ b/dgit
@@ -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);
}
}