use 5.014000;
use warnings;
-our $VERSION = '5999.000_004';
+our $VERSION = '5999.000_015';
use Gruntmaster::App '-command';
use Gruntmaster::Data;
use File::Slurp qw/read_file write_file/;
use IO::Prompter [ -style => 'bold', '-stdio', '-verbatim' ];
use JSON::MaybeXS qw/encode_json/;
+use PerlX::Maybe;
use Term::ANSIColor qw/RED RESET/;
use constant LEVEL_VALUES => {
my $name = prompt 'Contest name';
my $owner = prompt 'Owner';
- my $start = str2time prompt 'Start time' or die 'Cannot parse time';
- my $stop = str2time prompt 'Stop time' or die 'Cannot parse time';
+ my $start = str2time prompt 'Start time' or die "Cannot parse time\n";
+ my $stop = str2time prompt 'Stop time' or die "Cannot parse time\n";
db->insert(contests => {id => $id, name => $name, owner => $owner, start => $start, stop => $stop});
}
if ($runner eq 'Verifier' || $runner eq 'Interactive') {
say RED, 'WARNING: Runner::Interactive is experimental', RESET if $runner eq 'Interactive';
- $versource = prompt "[Runner::$runner] Verifier file name", -complete => 'filenames';
+ $versource = read_file prompt "[Runner::$runner] Verifier file name", -complete => 'filenames';
$verformat = prompt "[Runner::$runner] Verifier format", -menu => [qw/C CPP MONO JAVA PASCAL PERL PYTHON/];
}
runner => $runner,
judge => $judge,
testcnt => $testcnt,
+ maybe private => $private,
+ maybe timeout => $timeout,
+ maybe olimit => $olimit,
+ maybe gensource => $gensource,
+ maybe genformat => $genformat,
+ maybe versource => $versource,
+ maybe verformat => $verformat,
);
- $options{private} = $private if $private;
- $options{timeout} = $timeout if $timeout;
- $options{olimit} = $olimit if $olimit;
$options{tests} = encode_json \@tests if @tests;
- $options{gensource} = $gensource if $gensource;
- $options{genformat} = $genformat if $genformat;
- $options{versource} = $versource if $versource;
- $options{verformat} = $verformat if $verformat;
db->insert(problems => \%options);
db->insert(contest_problems => {problem => $id, contest => $contest}) if $contest;
}
1;
__END__
+
+=encoding utf-8
+
+=head1 NAME
+
+Gruntmaster::App::Command::Add - add a problem or contest by answering a series of prompts
+
+=head1 SYNOPSIS
+
+ gm -p add aplusb
+ gm -c add test_contest
+
+=head1 DESCRIPTION
+
+The add command creates a new problem or contest by prompting the user
+for the properties of the new object. It takes a single argument, the
+ID of the new object.
+
+=head1 SEE ALSO
+
+L<gm>
+
+=head1 AUTHOR
+
+Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014-2015 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.20.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut