]> iEval git - gruntmaster-data.git/blobdiff - gruntmaster-contest
Bump version and update Changes
[gruntmaster-data.git] / gruntmaster-contest
index c2608c9300c26dcdb3915337fe13df12d076fbd4..856faae6d7698fbc08b396ccb6f07defd7b92444 100755 (executable)
@@ -9,21 +9,27 @@ use Date::Parse qw/str2time/;
 
 ##################################################
 
+my $dsn = $ENV{GRUNTMASTER_DSN} // 'dbi:Pg:';
+my $db = Gruntmaster::Data->connect($dsn);
+
 sub cmd_help{
        exec perldoc => $0
 }
 
 sub cmd_list{
        local $, = "\n";
-       say contests;
+       say map { $_->id } $db->contests->all;
 }
 
 sub cmd_show{
-       local $_ = shift or goto &cmd_list;
-       say "Name: ", contest_name;
-       say "Owner: ", contest_owner;
-       say "Start: ", strftime '%c', localtime contest_start;
-       say "End: ", strftime '%c', localtime contest_end;
+       my %columns = $db->contest(shift)->get_columns;
+       $columns{$_} = strftime '%c', localtime $columns{$_} for qw/start stop/;
+       print <<END
+Name: $columns{name}
+Owner: $columns{owner}
+Start: $columns{start}
+Stop: $columns{stop}
+END
 }
 
 sub cmd_add{
@@ -31,16 +37,23 @@ sub cmd_add{
        my $name = prompt 'Contest name';
        my $owner = prompt 'Owner';
        my $start = str2time prompt 'Start time' or die 'Cannot parse time';
-       my $end = str2time prompt 'End time' or die 'Cannot parse time';
+       my $stop = str2time prompt 'Stop time' or die 'Cannot parse time';
 
-       insert_contest $id => name => $name, owner => $owner, start => $start, end => $end;
-       PUBLISH genpage => "ct/$id/index.html";
-       PUBLISH genpage => "ct/index.html";
+       $db->contests->create({id => $id, name => $name, owner => $owner, start => $start, stop => $stop})
 }
 
 sub cmd_rm{
-       remove_contest shift;
-       PUBLISH genpage => "ct/index.html";
+       $db->contest(shift)->delete
+}
+
+sub cmd_get{
+       my ($id, $col) = @_;
+       say $db->contest($id)->get_column($col)
+}
+
+sub cmd_set{
+       my ($id, %values) = @_;
+       $db->contest($id)->update(\%values)
 }
 
 ##################################################
@@ -65,9 +78,52 @@ gruntmaster-contest - shell interface to Gruntmaster 6000 contests
   gruntmaster-contest show id
   gruntmaster-contest add id
   gruntmaster-contest rm id
+  gruntmaster-contest get id key
+  gruntmaster-contest set id key value
 
 =head1 DESCRIPTION
 
+gruntmaster-contest is a tool for managing contests.
+
+=over
+
+=item B<list>
+
+Prints the list of contests.
+
+=item B<show> I<id>
+
+Prints detailed information about the contest with id I<id>.
+
+=item B<add> I<id>
+
+Adds a new contest with id I<id>.
+
+=item B<rm> I<id>
+
+Removes the contest with id I<id>.
+
+=item B<set> I<id> I<key> I<value>
+
+Sets the I<key> configuration option of contest I<id> to I<value>.
+
+=item B<get> I<id> I<key>
+
+Get the value of the I<key> configuration option of contest I<id>.
+
+=back
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 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.18.1 or,
+at your option, any later version of Perl 5 you may have available.
 
 
 =cut
This page took 0.023418 seconds and 4 git commands to generate.