Add gruntmaster-contest
authorMarius Gavrilescu <marius@ieval.ro>
Fri, 17 Jan 2014 07:55:21 +0000 (09:55 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Fri, 17 Jan 2014 07:55:21 +0000 (09:55 +0200)
Makefile.PL
gruntmaster-contest [new file with mode: 0755]

index 3a7901cb835174acd7dd04a0db6e0ddde4489e80..cc79d4f5bd40da3b359571afc3baa776cc042d1b 100644 (file)
@@ -4,7 +4,7 @@ use ExtUtils::MakeMaker;
 WriteMakefile(
   NAME              => 'Gruntmaster::Page',
   VERSION_FROM      => 'lib/Gruntmaster/Page.pm',
-  EXE_FILES         => [ qw/gruntmaster-genpage gruntmaster-genallpages gruntmaster-paged gruntmaster-problem gruntmaster-job/ ],
+  EXE_FILES         => [ qw/gruntmaster-genpage gruntmaster-genallpages gruntmaster-paged gruntmaster-contest gruntmaster-problem gruntmaster-job/ ],
   ABSTRACT_FROM     => 'lib/Gruntmaster/Page.pm',
   AUTHOR            => 'Marius Gavrilescu <marius@ieval.ro>',
   MIN_PERL_VERSION  => '5.14.0',
diff --git a/gruntmaster-contest b/gruntmaster-contest
new file mode 100755 (executable)
index 0000000..e61a6c2
--- /dev/null
@@ -0,0 +1,72 @@
+#!/usr/bin/perl -w
+use v5.14;
+
+use Gruntmaster::Data qw/contests insert_contest remove_contest contest_name contest_owner contest_start contest_end/;
+
+use IO::Prompter [ -style => 'bold', '-stdio', '-verbatim' ];
+use File::Slurp qw/read_file/;
+use Term::ANSIColor qw/RED RESET/;
+use POSIX qw/strftime/;
+use Date::Parse qw/str2time/;
+
+##################################################
+
+sub cmd_help{
+       exec perldoc => $0
+}
+
+sub cmd_list{
+       local $, = "\n";
+       say contests;
+}
+
+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;
+}
+
+sub cmd_add{
+       my $id = shift;
+       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';
+
+       insert_contest $id => name => $name, owner => $owner, start => $start, end => $end;
+}
+
+sub cmd_rm{
+       remove_contest shift;
+}
+
+##################################################
+
+no strict 'refs';
+my $cmd = 'cmd_' . shift;
+cmd_help unless exists $main::{$cmd};
+$cmd->(@ARGV) if exists $main::{$cmd};
+
+1;
+__END__
+
+=encoding utf-8
+
+=head1 NAME
+
+gruntmaster-contest - shell interface to Gruntmaster 6000 contests
+
+=head1 SYNOPSIS
+
+  gruntmaster-contest list
+  gruntmaster-contest show id
+  gruntmaster-contest add id
+  gruntmaster-contest rm id
+
+=head1 DESCRIPTION
+
+
+
+=cut
This page took 0.012248 seconds and 4 git commands to generate.