/[kvake]/kvake.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /kvake.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by dpavlin, Fri Apr 14 07:24:06 2000 UTC revision 1.5 by dpavlin, Wed May 3 07:21:50 2000 UTC
# Line 13  Line 13 
13  # 2000-03-01 DbP poravljen ignore_dirs grep bug  # 2000-03-01 DbP poravljen ignore_dirs grep bug
14  #  #
15  # 2000-03-31 Hana sada ignorira sve sto ^eng$, ^eng_ , ^adresar$ u imenu direktorija  # 2000-03-31 Hana sada ignorira sve sto ^eng$, ^eng_ , ^adresar$ u imenu direktorija
16    # 2000-05-03 DbP lock support
17    
18  $mod_time = 10*60;      # 10 minuta  $mod_time = 10*60;      # 10 minuta
19  #$mod_time = 24*60*60;  # 1 day  #$mod_time = 24*60*60;  # 1 day
20    
21  $verbose = 0;  $verbose = 0;
22    
23    use Fcntl ':flock';     # import LOCK_*
24    $lock="/tmp/kvake.lock";
25    
26  #@ignore_dirs=( "/data/web/public/adresar/", "/data/web/public/eng" );  #@ignore_dirs=( "/data/web/public/adresar/", "/data/web/public/eng" );
27    
28  while (defined($ARGV[0]) && $ARGV[0] eq "-v") {  while (defined($ARGV[0]) && $ARGV[0] eq "-v") {
# Line 36  if (! defined(@ARGV) || ($#ARGV < 0)) { Line 40  if (! defined(@ARGV) || ($#ARGV < 0)) {
40    
41  print STDERR "Scanning dirs: @dirs\n" if ($verbose);  print STDERR "Scanning dirs: @dirs\n" if ($verbose);
42    
43    print STDERR "locking\n" if ($verbose);
44    while (-e "$lock") {
45            sub read_lock_pid {
46                    my $pid;
47                    open(LOCK,"$lock") || die "can't open lock $lock: $!";
48                    $pid=<LOCK>;
49                    close(LOCK);
50                    return $pid;
51            }
52            $run_pid=read_lock_pid;
53            print STDERR "lock on pid $run_pid found\n";
54            # if not over in 15 min. kill (next re-run will do actual work)
55            sleep 15*60;
56            $new_pid=read_lock_pid;
57            if ($run_pid == $new_pid) {
58                    print STDERR "killing process $run_pid and clearing lock\n";
59                    kill 9,$run_pid;
60                    unlink $lock;
61                    die;
62            }
63    }
64    
65    open(LOCK,">$lock") || die "can't open lock $lock: $!";
66    print LOCK "$$";
67    flock(LOCK,LOCK_EX);
68    
69  foreach $dir (@dirs) {  foreach $dir (@dirs) {
70          opendir(DIR,"$dir") || warn "can't open $dir: $!";          opendir(DIR,"$dir") || warn "can't open $dir: $!";
71          foreach $f (grep { !/^\./ } readdir(DIR)) {          foreach $f (grep { !/^\./ } readdir(DIR)) {
# Line 86  foreach $file (@files) { Line 116  foreach $file (@files) {
116          chown $stat[4],$stat[5],"$file";          chown $stat[4],$stat[5],"$file";
117  }  }
118    
119    print STDERR "unlocking\n" if ($verbose);
120    flock(LOCK,LOCK_UN);
121    close(LOCK);
122    unlink $lock;
123    
124  1;  1;
125    
126  sub replace {  sub replace {

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.26