Purge affected pages on insert/update/delete
[gruntmaster-data.git] / gruntmaster-job
CommitLineData
014ee8a6
MG
1#!/usr/bin/perl -w
2use v5.14;
3
4use Gruntmaster::Data;
5
6use IO::Prompter [ -style => 'bold', '-stdio', '-verbatim' ];
014ee8a6
MG
7use POSIX qw/strftime/;
8
9##################################################
10
30e287c3
MG
11my $dsn = $ENV{GRUNTMASTER_DSN} // 'dbi:Pg:';
12my $db = Gruntmaster::Data->connect($dsn);
014ee8a6
MG
13
14sub cmd_help{
15 exec perldoc => $0
16}
17
4af36605
MG
18sub cmd_show{
19 my %columns = $db->job(shift)->get_columns;
20 $columns{date} = strftime '%c', localtime $columns{date};
21 $columns{private} = $columns{private} ? 'yes' : 'no';
22
23 print <<END
24Date: $columns{date}
25Owner: $columns{owner}
26Problem: $columns{problem}
27Format: $columns{format}
28Daemon: $columns{daemon}
29Result text: $columns{result_text}
30Private: $columns{private}
31END
014ee8a6
MG
32}
33
4af36605 34sub cmd_rm{
edfc5928
MG
35 my ($id) = @_;
36 $db->job($id)->delete;
37 purge '/log/';
38 purge "/log/$id";
4af36605
MG
39}
40
41sub cmd_get{
42 my ($id, $col) = @_;
43 say $db->job($id)->get_column($col)
44}
45
46sub cmd_set{
47 my ($id, %values) = @_;
edfc5928
MG
48 $db->job($id)->update(\%values);
49 purge '/log/';
50 purge "/log/$id";
014ee8a6
MG
51}
52
53sub cmd_rerun{
edfc5928
MG
54 my ($id) = @_;
55 $db->job($id)->rerun;
56 purge '/log/';
57 purge "/log/$id";
014ee8a6
MG
58}
59
60##################################################
61
014ee8a6
MG
62my $cmd = 'cmd_' . shift;
63cmd_help unless exists $main::{$cmd};
64no strict 'refs';
65$cmd->(@ARGV) if exists $main::{$cmd};
66
671;
68__END__
69
70=encoding utf-8
71
72=head1 NAME
73
74gruntmaster-job - shell interface to Gruntmaster 6000 job log
75
76=head1 SYNOPSIS
77
4af36605
MG
78 gruntmaster-job show id
79 gruntmaster-job rm id
80 gruntmaster-job get id key
81 gruntmaster-job set id key value
82 gruntmaster-job rerun id
014ee8a6
MG
83
84=head1 DESCRIPTION
85
e90402be
MG
86gruntmaster-job is a tool for managing jobs.
87
e90402be
MG
88=over
89
e90402be
MG
90=item B<show> I<id>
91
92Prints detailed information about the job with id I<id>.
93
4af36605
MG
94=item B<rm> I<id>
95
96Removes the job with id I<id>.
97
98=item B<set> I<id> I<key> I<value>
99
100Sets the I<key> configuration option of job I<id> to I<value>.
101
102=item B<get> I<id> I<key>
103
104Get the value of the I<key> configuration option of job I<id>.
105
e90402be
MG
106=item B<rerun> I<id>
107
108Reruns job I<id>.
109
110=back
111
112=head1 AUTHOR
113
114Marius Gavrilescu E<lt>marius@ieval.roE<gt>
115
116=head1 COPYRIGHT AND LICENSE
117
118Copyright (C) 2014 by Marius Gavrilescu
119
4af36605
MG
120This library is free software; you can redistribute it and/or modify
121it under the same terms as Perl itself, either Perl version 5.18.1 or,
122at your option, any later version of Perl 5 you may have available.
014ee8a6
MG
123
124
125=cut
This page took 0.017536 seconds and 4 git commands to generate.