bisect.pl now exits with 0 for success for --help
authorNicholas Clark <nick@ccl4.org>
Wed, 1 Feb 2012 20:44:51 +0000 (21:44 +0100)
committerNicholas Clark <nick@ccl4.org>
Wed, 1 Feb 2012 20:44:51 +0000 (21:44 +0100)
bisect.pl --help now exits with 0 for success. The "that took" timing
message is no longer shown after the help text. The sanity test for "are we
running from the current checkout" is now moved after the argument checking,
so that bisect.pl --help will always show the help text.

Porting/bisect-runner.pl
Porting/bisect.pl

index 0dbeddb..f15f92d 100755 (executable)
@@ -88,7 +88,7 @@ my ($target, $j, $match) = @options{qw(target jobs match)};
 @ARGV = ('sh', '-c', 'cd t && ./perl TEST base/*.t')
     if $options{validate} && !@ARGV;
 
-pod2usage(exitval => 255, verbose => 1) if $options{usage};
+pod2usage(exitval => 0, verbose => 1) if $options{usage};
 pod2usage(exitval => 255, verbose => 1)
     unless @ARGV || $match || $options{'test-build'} || defined $options{'one-liner'};
 pod2usage(exitval => 255, verbose => 1)
index ee7214f..1a51405 100755 (executable)
@@ -7,16 +7,14 @@ Documentation for this is in bisect-runner.pl
 
 =cut
 
-my $start_time = time;
-
 # The default, auto_abbrev will treat -e as an abbreviation of --end
 # Which isn't what we want.
 use Getopt::Long qw(:config pass_through no_auto_abbrev);
 
-my ($start, $end, $validate);
-unshift @ARGV, '--help' unless GetOptions('start=s' => \$start,
-                                          'end=s' => \$end,
-                                          validate => \$validate);
+my ($start, $end, $validate, $usage, $bad);
+$bad = !GetOptions('start=s' => \$start, 'end=s' => \$end,
+                   validate => \$validate, 'usage|help|?' => \$usage);
+unshift @ARGV, '--help' if $bad || $usage;
 unshift @ARGV, '--validate' if $validate;
 
 my $runner = $0;
@@ -24,6 +22,10 @@ $runner =~ s/bisect\.pl/bisect-runner.pl/;
 
 die "Can't find bisect runner $runner" unless -f $runner;
 
+system $^X, $runner, '--check-args', '--check-shebang', @ARGV and exit 255;
+exit 255 if $bad;
+exit 0 if $usage;
+
 {
     my ($dev0, $ino0) = stat $0;
     die "Can't stat $0: $!" unless defined $ino0;
@@ -32,7 +34,7 @@ die "Can't find bisect runner $runner" unless -f $runner;
       if defined $dev1 && $dev0 == $dev1 && $ino0 == $ino1;
 }
 
-system $^X, $runner, '--check-args', '--check-shebang', @ARGV and exit 255;
+my $start_time = time;
 
 # We try these in this order for the start revision if none is specified.
 my @stable = qw(perl-5.005 perl-5.6.0 perl-5.8.0 v5.10.0 v5.12.0 v5.14.0);