X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=gruntmaster-problem;h=819b7ef0a4c3f97ed91f282fc92d35f2ef244890;hb=78c794d653161038dd4ef5986d7c7a5b96baff82;hp=b942897ac41d12388c93b4427474dd0c34a94db0;hpb=30e287c3bec805e7d17eadc3cadf140f1da35a9c;p=gruntmaster-data.git diff --git a/gruntmaster-problem b/gruntmaster-problem index b942897..819b7ef 100755 --- a/gruntmaster-problem +++ b/gruntmaster-problem @@ -9,6 +9,13 @@ use JSON qw/encode_json/; use Term::ANSIColor qw/RED RESET/; use Getopt::Long qw/:config require_order/; +use constant LEVEL_VALUES => { + beginner => 100, + easy => 250, + medium => 500, + hard => 1000, +}; + ################################################## my $dsn = $ENV{GRUNTMASTER_DSN} // 'dbi:Pg:'; @@ -24,8 +31,10 @@ sub cmd_add{ my $private = prompt('Private?', '-yn') eq 'y'; my $contest = prompt 'Contest'; my $author = prompt 'Problem author (full name)'; + my $writer = prompt 'Problem statement writer (full name)'; my $owner = prompt 'Problem owner (username)'; my $level = prompt 'Problem level', -menu => "beginner\neasy\nmedium\nhard"; + my $value = LEVEL_VALUES->{$level}; my $statement = read_file prompt 'File with problem statement', -complete => 'filenames'; my $generator = prompt 'Generator', -menu => "File\nRun\nUndef"; my $runner = prompt 'Runner', -menu => "File\nVerifier\nInteractive"; @@ -58,8 +67,10 @@ sub cmd_add{ id => $id, name => $name, level => $level, + value => $value, statement => $statement, author => $author, + writer => $writer, owner => $owner, generator => $generator, runner => $runner, @@ -82,9 +93,9 @@ sub cmd_add{ sub cmd_set{ my $file; GetOptions ( 'file!' => \$file ); - my ($id, %values) = @_; + my ($id, %values) = @ARGV; %values = map { $_ => scalar read_file $values{$_} } keys %values if $file; - $db->problem($id)->update(\%values) + $db->problem($id)->update(\%values); } sub cmd_get{ @@ -98,7 +109,8 @@ sub cmd_list{ } sub cmd_rm{ - $db->problem(shift)->delete + my ($id) = @_; + $db->problem($id)->delete; } sub cmd_show{