Added rerun_problem and improved gm rerun
[gruntmaster-data.git] / lib / Gruntmaster / App / Command / Rerun.pm
index c309eaaeb9ce3be102f78b5438323210f150cfcb..4856b33b0ac661fa0937e2d9405a357d152a8374 100644 (file)
@@ -3,24 +3,32 @@ package Gruntmaster::App::Command::Rerun;
 use 5.014000;
 use warnings;
 
-our $VERSION = '5999.000_014';
+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.011057 seconds and 4 git commands to generate.