/[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.1.1.1 by dpavlin, Fri Apr 14 06:01:44 2000 UTC revision 1.5 by dpavlin, Wed May 3 07:21:50 2000 UTC
# Line 11  Line 11 
11  #  #
12  # 2000-02-16 Dobrica Pavlinusic <dpavlin@pliva.hr> prva perl verzija  # 2000-02-16 Dobrica Pavlinusic <dpavlin@pliva.hr> prva perl verzija
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
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  @ignore_dirs=( "/data/web/public/adresar/", "/data/web/public/eng" );  use Fcntl ':flock';     # import LOCK_*
24    $lock="/tmp/kvake.lock";
25    
26    #@ignore_dirs=( "/data/web/public/adresar/", "/data/web/public/eng" );
27    
28    while (defined($ARGV[0]) && $ARGV[0] eq "-v") {
29            $verbose++;
30            shift @ARGV;
31    }
32    print STDERR "verbosity: $verbose\n" if ($verbose);
33    
34  if (! defined(@ARGV)) {  if (! defined(@ARGV) || ($#ARGV < 0)) {
35          @dirs=( "/data/web/public",          @dirs=( "/data/web/public",
36                  "/usr/users/it/dpeterc" );                  "/usr/users/it/dpeterc" );
37  } else {  } else {
38          @dirs=@ARGV;          @dirs=@ARGV;
39  }  }
40    
41    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)) {
72                  if (-f "$dir/$f" && ! -l "$dir/$f") {                  if (-d "$dir/$f" && $f !~ /^eng$/ && $f !~ /^adresar$/ && $f !~ /^eng_/) {
73                          print "jedan od fileka dir/$f\n";                          $push_it = 1;
74                            push @dirs,"$dir/$f" if ($push_it);
75                    }
76                    elsif (-f "$dir/$f" && ! -l "$dir/$f") {
77                          @stat = stat(_);                          @stat = stat(_);
78                          if ($f =~ /\.html/ && (time() - $stat[9]) < $mod_time) {                          if ($f =~ /\.html/ && (time() - $stat[9]) < $mod_time) {
79                                    print "filek za mjenjanje `$dir/$f\n" if ($verbose);
80                                  push @files,"$dir/$f";                                  push @files,"$dir/$f";
81                          }                          }
82                  } elsif (-d "$dir/$f") {                          else {
83                          $push_it = 1;                                  print "ovo je staro: $dir/$f\n" if ($verbose > 1);
                         foreach $ig_dir (@ignore_dirs) {  
 #                               print "\t$dir/$f -- $ig_dir\n";  
                                 if ("$dir/$f" =~ m,$ig_dir,) {  
                                         print "skipping $dir/$f (in ignore list)\n" if ($verbose);  
                                         $push_it = 0;  
                                 }  
84                          }                          }
85                          push @dirs,"$dir/$f" if ($push_it);                  }
86                  } else {                  elsif ($f =~ /^eng$/ || $f =~ /adresar/ || $f =~ /^eng_/) {
87                          print "skipping $dir/$f\n" if ($verbose);                                  print "preskacem jer je  eng ili adresar $dir/$f\n" if ($verbose);
88                    }
89                    else {
90                                    print "ovo je link $dir/$f\n" if ($verbose);
91                  }                  }
92          }                }      
93          closedir DIR;          closedir DIR;
94  }  }
95    
 #foreach $file ("/data/web/public/VIJESTI/30ozpotpiskol.html") {  
96  foreach $file (@files) {  foreach $file (@files) {
97          if (open(IN,"$file")) {          if (open(IN,"$file")) {
98                  print "$file\n" if ($verbose);                  print "$file\n" if ($verbose);
# Line 76  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 {
127            do '/root/kvake/zamjene.pl';
 s/ch/č/g; s/CH/Č/g;  
 s/cc/ć/g; s/CC/Ć/g;  
 s/zh/ž/g; s/ZH/Ž/g;  
 s/sh/š/g; s/SH/Š/g;  
 s/dh/đ/g; s/DH/Đ/g;  
                           
 s/ ČN / CHN /g;  
 s/18th IĆ Sto/18th ICC Sto/g;  
 s/aćepted/accepted/g;  
 s/aćount/account/g;  
 s/aćumulated/accumulated/g;  
 s/Aćount/Account/g;  
 s/Aćess/Access/g;  
 s/ačieved/achieved/g;  
 s/ančor/anchor/g;  
 s/ANČOR/ANCHOR/g;  
 s/approačing/approaching/g;  
 s/Batč/Batch/g;  
 s/BATČ/BATCH/g;  
 s/Bayerisče/Bayerische/g;  
 s/Beečam/Beecham/g;  
 s/BEEČAM/BEECHAM/g;  
 s/Bioteč/Biotech/g;  
 s/infoteč/infotech/g;  
 s/Blue čip/Blue chip/g;  
 s/Boćoni/Bocconi/g;  
 s/BRONČITIS/BRONCHITIS/g;  
 s/ČANGE/CHANGE/g;  
 s/čange/change/g;  
 s/čaracteris/characteris/g;  
 s/ČARACTERISTICS/CHARACTERISTICS/g;  
 s/čart /chart /g;  
 s/caš/cash/g;  
 s/cašless/cashless/g;  
 s/čarset/charset/g;  
 s/čeck/check/g;  
 s/Cellteč/Celltech/g;  
 s/čemi/chemi/g;  
 s/ČEMI/CHEMI/g;  
 s/čemotherapy/chemotherapy/g;  
 s/čildbearing/childbearing/g;  
 s/ČILDREN/CHILDREN/g;  
 s/ČIRON/CHIRON/g;  
 s/ČLAMIDIA/CHLAMIDIA/g;  
 s/ČLAMYDIAL/CHLAMYDIAL/g;  
 s/čool/chool/g;  
 s/ČROMOS/CHROMOS/g;  
 s/ČRONIC/CHRONIC/g;  
 s/čronic/chronic/g;  
 s/Daiiči/Daiichi/g;  
 s/Deutsč/Deutsch/g;  
 s/Doxyćline/Doxyccline/g;  
 s/dkatčalkov/dkatchalkov/g;  
 s/ eač / each /g;  
 s/eandryusčenko/eandryuschenko/g;  
 s/einrič/einrich/g;  
 s/ekartaševa/ekartasheva/g;  
 s/Engliš/English/g;  
 s/engliš/english/g;  
 s/esterreič/esterreich/g;  
 s/FINIŠED/FINISHED/g;  
 s/FREŠ/FRESH/g;  
 s/freš/fresh/g;  
 s/Goldšield/Goldshield/g;  
 s/gonocoćal/gonococcal/g;  
 s/Hoečst/Hoechst/g;  
 s/IFSĆ/IFSCC/g;  
 s/ilevšin/ilevshin/g;  
 s/išođenje/ishođenje/g;  
 s/išoditi/ishoditi/g;  
 s/išode/ishode/g;  
 s/Itača/Itacha/g;  
 s/Karpisčenko/Karpischenko/g;  
 s/LAČEM/LACHEM/g;  
 s/Lačem/Lachem/g;  
 s/Leaderšip/Leadership/g;  
 s/LYNČ/LYNCH/g;  
 s/loćo/locco/g;  
 s/acintoš/acintosh/g;  
 s/mečanis/mechanis/g;  
 s/MACINTOŠ/MACINTOSH/g;  
 s/matčing/matching/g;  
 s/Maškilleyson/Mashkilleyson/g;  
 s/medwatč/medwatch/g;  
 s/Merčant/Merchant/g;  
 s/Mičele/Michele/g;  
 s/Munčen/Munchen/g;  
 s/Osterreič/Osterreich/g;  
 s/Paškova/Pashkova/g;  
 s/PUBLIŠED/PUBLISHED/g;  
 s/purčas/purchas/g;  
 s/Relaunč/Relaunch/g;  
 s/relaunč/relaunch/g;  
 s/rič/rich/g;  
 s/Ričter/Richter/g;  
 s/Ričard/Richard/g;  
 s/ritiš/ritish/g;  
 s/Roče/Roche/g;  
 s/Rytčik/Rytchik/g;  
 s/Savičeva/Savicheva/g;  
 s/Sčauer/Schauer/g;  
 s/Sčonwald/Schonwald/g;  
 s/sčeduling/scheduling/g;  
 s/sčen/schen/g;  
 s/Sč/Sch/g;  
 s/SČ/SCH/g;  
 s/Sčering/Schering/g;  
 s/Sčleswig/Schleswig/g;  
 s/Sčmidt/Schmidt/g;  
 s/SČMIDT/SCHMIDT/g;  
 s/SEARČ/SEARCH/g;  
 s/Searč/Search/g;  
 s/searč/search/g;  
 s/Stračounsky/Strachounsky/g;  
 s/šare/share/g;  
 s/šea/shea/g;  
 s/šell/shell/g;  
 s/šeet/sheet/g;  
 s/šema/shema/g;  
 s/ŠEMA/SHEMA/g;  
 s/šip/ship/g;  
 s/šodno/shodno/g;  
 s/šop/shop/g;  
 s/ŠORT/SHORT/g;  
 s/šort-term/short-term/g;  
 s/ šown / shown /g;  
 s/ šows / shows /g;  
 s/šridge/shridge/g;  
 s/švaća/shvaća/g;  
 s/švate/shvate/g;  
 s/Š;.GIF/SH;.GIF/g;  
 s/š;.html/sh;.html/g;  
 s/exčange/exchange/g;  
 s/SUĆESSFUL/SUCCESSFUL/g;  
 s/SUPERFREŠ/SUPERFRESH/g;  
 s/teač /teach /g;  
 s/tečniques/techniques/g;  
 s/ečnolog/echnolog/g;  
 s/tračomatis/trachomatis/g;  
 s/ućess/uccess/g;  
 s/Vaćines /Vaccines /g;  
 s/ whič / which /g;  
 s/Wašington/Washington/g;  
 s/Yamanouči/Yamanouchi/g;  
 s/ynč/ynch/g;  
 s/Zinner Š./Zinner SH./g;  
 s/Zinner Š/Zinner SH/g;  
 s/Zurič/Zurich/g;  
   
 # ovi idu uvijek na kraju  
 s/generich/generič/g;  
 s/išhođenje/ishođenje/g;  
 s/Jurichu /Juriču /g;  
 s/merichk/meričk/g;  
 s/Petrichi/Petriči/g;  
 s/Petrichevi/Petričevi/g;  
 s/prichuva/pričuva/g;  
 s/rašod/rashod/g;  
 s/Rašod/Rashod/g;  
 s/čosen/chosen/g;  
   
 s/iso\.č/iso\.ch/g;  
 s/medicorpteč\.com/medicorptech.com/g;  
 s/člorination/chlorination/g;  
 s/Tečnical/Technical/g;  
 s/Satiš Joši/Satish Joshi/g;  
 s/čloride/chloride/g;  
 s/Fisčer/Fischer/g;  
 s/ čain/ chain/g;  
 s/Hydričlorination/ Hydrichlorination/g;  
 s/Mannič/Mannich/g;  
 s/Flemiš/Flemish/g;  
   
 s/AREA ŠAPE=/AREA SHAPE=/g;  
 s/&Ecirc;/ć/g;  # hm?  
   
 s/Streptocoćus/Streptococcus/g;  
 s/Coći/Cocci/g;  
 s/ČPSG/CHPSG/g;  
   
 s/BENČMARKING/BENCHMARKING/g;  
 s/Benčmarking/Benchmarking/g;  
 s/Fišer/Fisher/g;  
 s/šeppard/sheppard/g;  
 s/Czeč/Czech/g;  
 s/Tošiba/Toshiba/g;  
 s/Marč/March/g;  
   
128  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.26