Added rerun_problem and improved gm rerun
[gruntmaster-data.git] / lib / Gruntmaster / App / Command / Rerun.pm
index bb4c0c8c6cb1d6928eb6bc82b563982c804536db..4856b33b0ac661fa0937e2d9405a357d152a8374 100644 (file)
@@ -7,20 +7,28 @@ our $VERSION = '5999.000_015';
 
 use Gruntmaster::App '-command';
 use Gruntmaster::Data;
+use Scalar::Util qw/looks_like_number/;
 
-sub usage_desc { '%c rerun id' }
+sub usage_desc { '%c rerun id...' }
 
 sub validate_args {
        my ($self, $opt, $args) = @_;
        my @args = @$args;
-       $self->usage_error('This command only works on jobs') if $self->app->table && $self->app->table ne 'jobs';
-       $self->usage_error('Wrong number of arguments') if @args != 1;
+       $self->usage_error('Not enough arguments') if @args < 1;
 }
 
 sub execute {
        my ($self, $opt, $args) = @_;
-       my ($obj) = @$args;
-       rerun_job $obj;
+       my @args = @$args;
+
+       for my $obj (@args) {
+               if (looks_like_number $obj) {
+                       rerun_job $obj;
+               }
+               else {
+                       rerun_problem $obj;
+               }
+       }
 }
 
 1;
@@ -30,16 +38,19 @@ __END__
 
 =head1 NAME
 
-Gruntmaster::App::Command::Rerun - rerun a job
+Gruntmaster::App::Command::Rerun - rerun some jobs and probles
 
 =head1 SYNOPSIS
 
-  gm rerun 123
+  gm rerun 123 124
+
+  gm rerun aplusb aminusb
+
+  gm rerun 12 aplusb
 
 =head1 DESCRIPTION
 
-The rerun command takes the ID of a job, clears its result, and makes
-B<gruntmaster-daemon> rerun it.
+The rerun command takes some IDs of jobs and problems and reruns them.
 
 =head1 SEE ALSO
 
This page took 0.010421 seconds and 4 git commands to generate.