X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FApp%2FCommand%2FSet.pm;h=e1f70da8201e0bc27cb7b857e100b9e195c7cca4;hb=b35cbc0d6ca5baf03ffbeb2b9a375fa71f4d0ad3;hp=b3754ddee359bd02e81616187f4818a2b33f1463;hpb=92f74061ec24c7d45c9312ae54280356530f6c8c;p=gruntmaster-data.git
diff --git a/lib/Gruntmaster/App/Command/Set.pm b/lib/Gruntmaster/App/Command/Set.pm
index b3754dd..e1f70da 100644
--- a/lib/Gruntmaster/App/Command/Set.pm
+++ b/lib/Gruntmaster/App/Command/Set.pm
@@ -3,15 +3,22 @@ package Gruntmaster::App::Command::Set;
use 5.014000;
use warnings;
-our $VERSION = '5999.000_004';
+our $VERSION = '5999.000_016';
use Gruntmaster::App '-command';
use Gruntmaster::Data;
use File::Slurp qw/read_file/;
+use constant PAGES => {
+ contests => '/ct/',
+ jobs => '/log/',
+ problems => '/pb/',
+ users => '/us/',
+};
+
sub opt_spec {
- ['file!', 'Use the contents of a file as value'],
+ ['file!', 'Use the contents of a file as value']
}
sub usage_desc { "%c [-cjpu] set id column value [column value ...]\n%c [-cjpu] set --file id column filename [column filename ...]" }
@@ -29,7 +36,46 @@ sub execute {
my ($id, %values) = @$args;
%values = map { $_ => scalar read_file $values{$_} } keys %values if $opt->{file};
db->update($self->app->table, \%values, {id => $id});
+ purge PAGES->{$self->app->table}.$_ for '', $id;
}
1;
__END__
+
+=encoding utf-8
+
+=head1 NAME
+
+Gruntmaster::App::Command::Set - set a property of an object
+
+=head1 SYNOPSIS
+
+ gm -u set MGV name 'Marius Gavrilescu'
+ gm -p set aplusb level beginner
+ gm -c set test_ct 'This is a test contest.
Nothing to see here'
+ gm -j set 100 result_text Accepted
+
+=head1 DESCRIPTION
+
+The set command takes three arguments: an object id, a property name,
+and a value. It sets the given property of the given object to the
+given value.
+
+=head1 SEE ALSO
+
+L
+
+=head1 AUTHOR
+
+Marius Gavrilescu, Emarius@ieval.roE
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014-2016 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