chiark / gitweb /
dgit: Break out clean_tre_check_git
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Oct 2018 11:26:19 +0000 (12:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Oct 2018 11:53:31 +0000 (12:53 +0100)
This will make it easier to handle the other clean modes more clearly.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
dgit

diff --git a/dgit b/dgit
index 7eb0531..de697a1 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -6203,20 +6203,25 @@ sub maybe_unapply_patches_again () {
 
 #----- other building -----
 
+sub clean_tree_check_git ($$) {
+    my ($honour_ignores, $message) = @_;
+    my @cmd = (@git, qw(clean -dn));
+    push @cmd, qw(-x) unless $honour_ignores;
+    my $leftovers = cmdoutput @cmd;
+    if (length $leftovers) {
+       print STDERR $leftovers, "\n" or confess $!;
+       fail $message;
+    }
+}
+
 sub clean_tree_check () {
     # Not yet fully implemented.
     # This function needs to not care about modified but tracked files.
     # That was done by check_not_dirty, and by now we may have run
     # the rules clean target which might modify tracked files (!)
     if ($cleanmode =~ m{^check}) {
-       my @cmd = (@git, qw(clean -dn));
-       push @cmd, qw(-x) unless $cleanmode =~ m{ignores};
-       my $leftovers = cmdoutput @cmd;
-       if (length $leftovers) {
-           print STDERR $leftovers, "\n" or confess $!;
-           fail __
+       clean_tree_check_git +($cleanmode =~ m{ignores}), __
  "tree contains uncommitted files and --clean=check specified";
-       }
     }
 }