summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2017-02-12 16:14:24 -0700
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-07-26 22:52:28 +0100
commit8b34c8e50e236ea9340693c9a425cc2cb2f957ad (patch)
treeafdbe9e0b80a562a29d0c03ea466f2ce446f6b14 /dgit
parentdfe552723d6904f4a16a95d5a13fdec43cbb10c8 (diff)
dgit: factor out build_or_push_prep_early sub
This is to permit code deduplication between the commands for pushing and building. Both these sets of commands deny usage of -p, and set $isuite, $package and $version based on the changelog. In particular, a command that will perform a build /and/ a push can first perform the check for -p, set $package and then call functions to do the build. These latter functions will not complain that $package is set thanks to the $build_or_push_prep_early_done logic. No functional change. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit19
1 files changed, 10 insertions, 9 deletions
diff --git a/dgit b/dgit
index c17b42a..d772a90 100755
--- a/dgit
+++ b/dgit
@@ -4494,10 +4494,9 @@ END
sub prep_push () {
parseopts();
- badusage "-p is not allowed with dgit $subcommand" if defined $package;
+ build_or_push_prep_early();
+ pushing();
check_not_dirty();
- my $clogp = parsechangelog();
- $package = getfield $clogp, 'Source';
my $specsuite;
if (@ARGV==0) {
} elsif (@ARGV==1) {
@@ -4505,8 +4504,6 @@ sub prep_push () {
} else {
badusage "incorrect arguments to dgit $subcommand";
}
- $isuite = getfield $clogp, 'Distribution';
- pushing();
if ($new_package) {
local ($package) = $existing_package; # this is a hack
canonicalise_suite();
@@ -5822,14 +5819,18 @@ sub cmd_clean () {
maybe_unapply_patches_again();
}
-sub build_prep_early () {
- our $build_prep_early_done //= 0;
- return if $build_prep_early_done++;
- badusage "-p is not allowed when building" if defined $package;
+sub build_or_push_prep_early () {
+ our $build_or_push_prep_early_done //= 0;
+ return if $build_or_push_prep_early_done++;
+ badusage "-p is not allowed with dgit $subcommand" if defined $package;
my $clogp = parsechangelog();
$isuite = getfield $clogp, 'Distribution';
$package = getfield $clogp, 'Source';
$version = getfield $clogp, 'Version';
+}
+
+sub build_prep_early () {
+ build_or_push_prep_early();
notpushing();
check_not_dirty();
}