]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/support-scripts/fine_generator.pl
Qstore: support LIMIT and OFFSET clauses.
[working/Evergreen.git] / Open-ILS / src / support-scripts / fine_generator.pl
1 #!/usr/bin/perl
2 # ---------------------------------------------------------------------
3 # Fine generator with default grace period param.
4 # ./object_dumper.pl <bootstrap_config> <lockfile> <grace (default 0)>
5 # ---------------------------------------------------------------------
6
7 use strict; 
8 use warnings;
9 use OpenSRF::Utils::JSON;
10 use OpenSRF::System;
11
12 my $config = shift || die "bootstrap config required\n";
13 my $lockfile = shift || "/tmp/generate_fines-LOCK";
14 my $grace = shift;
15
16 $grace = '' if (!defined($grace) or $grace == 0);
17  
18 if (-e $lockfile) {
19         open(F,$lockfile);
20         my $pid = <F>;
21         close F;
22
23         open(F,'/bin/ps axo pid|');
24         while ( my $p = <F>) {
25                 chomp($p);
26                 if ($p =~ s/\s*(\d+)$/$1/o && $p == $pid) {
27                         die "I seem to be running already at pid $pid.  If not, try again\n";
28                 }
29         }
30         close F;
31 }
32
33 open(F, ">$lockfile");
34 print F $$;
35 close F;
36
37 OpenSRF::System->bootstrap_client( config_file => $config );
38
39 my $r = OpenSRF::AppSession
40                 ->create( 'open-ils.storage' )
41                 ->request( 'open-ils.storage.action.circulation.overdue.generate_fines' => $grace );
42
43 while (!$r->complete) { $r->recv };
44
45 unlink $lockfile;