]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/support-scripts/fine_generator.pl
Patch from Dan Scott to move JSON to OpenSRF::Utils::JSON:
[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
16 if (-e $lockfile) {
17         open(F,$lockfile);
18         my $pid = <F>;
19         close F;
20
21         open(F,'/bin/ps axo pid|');
22         while ( my $p = <F>) {
23                 chomp($p);
24                 if ($p =~ s/\s*(\d+)$/$1/o && $p == $pid) {
25                         die "I seem to be running already at pid $pid.  If not, try again\n";
26                 }
27         }
28         close F;
29 }
30
31 open(F, ">$lockfile");
32 print F $$;
33 close F;
34
35 OpenSRF::System->bootstrap_client( config_file => $config );
36
37 my $r = OpenSRF::AppSession
38                 ->create( 'open-ils.storage' )
39                 ->request( 'open-ils.storage.action.circulation.overdue.generate_fines' => 1 );
40
41 while (!$r->complete) { $r->recv };
42
43 unlink $lockfile;