diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2017-02-12 16:14:24 -0700 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-26 22:52:28 +0100 |
commit | 8b34c8e50e236ea9340693c9a425cc2cb2f957ad (patch) | |
tree | afdbe9e0b80a562a29d0c03ea466f2ce446f6b14 /dgit | |
parent | dfe552723d6904f4a16a95d5a13fdec43cbb10c8 (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-x | dgit | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -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(); } |