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