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); |
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/Ê/ć/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 |
} |
} |