X-Git-Url: http://git.ieval.ro/?p=gruntmaster-data.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FApp%2FCommand%2FAdd.pm;h=8f84dc3dbbeea559815ff92a7f363262fe5966c8;hp=a8306758d514c613fc9dccd5128389b6333e102a;hb=e1b6fd19f5724ce68ee92aaeae1c0ddf7a6a2561;hpb=9e2fb09994e2a1e3181b4e613df40cce3c502414 diff --git a/lib/Gruntmaster/App/Command/Add.pm b/lib/Gruntmaster/App/Command/Add.pm index a830675..8f84dc3 100644 --- a/lib/Gruntmaster/App/Command/Add.pm +++ b/lib/Gruntmaster/App/Command/Add.pm @@ -3,7 +3,7 @@ package Gruntmaster::App::Command::Add; use 5.014000; use warnings; -our $VERSION = '5999.000_004'; +our $VERSION = '5999.000_014'; use Gruntmaster::App '-command'; use Gruntmaster::Data; @@ -12,6 +12,7 @@ use Date::Parse qw/str2time/; 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 => { @@ -47,8 +48,8 @@ sub add_contest { 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}); } @@ -106,18 +107,54 @@ sub add_problem { 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 + +=head1 AUTHOR + +Marius Gavrilescu, Emarius@ieval.roE + +=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