]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/support-scripts/long-overdue-status-update.pl
LP1858448 Aged money control flags
[Evergreen.git] / Open-ILS / src / support-scripts / long-overdue-status-update.pl
1 #!/usr/bin/perl
2 # ---------------------------------------------------------------------
3 # Long Overdue script with default period param.
4 # ./long-overdue-status-update.pl <bootstrap_config> <lockfile> <age (default '180 days')>
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/long_overdue-LOCK";
14 my $age = shift;
15
16 $age = '180 days' if (!defined($age));
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.long_overdue' => $age );
42
43 while (!$r->complete) { $r->recv };
44
45 unlink $lockfile;