Current File : //usr/share/webmin/mailboxes/makelang.pl |
#!/usr/bin/perl
@ARGV == 1 || die "usage: makelang.pl <language>";
$usermin = "/usr/local/useradmin/mailbox/ulang";
$mailboxes = "/usr/local/webadmin/mailboxes/lang";
$sendmail = "/usr/local/webadmin/sendmail/lang";
&read_file("$mailboxes/en", \%emailboxes, \@eorder);
&read_file("$sendmail/en", \%esendmail);
&read_file("$usermin/en", \%eusermin);
&read_file("$mailboxes/$ARGV[0]", \%fmailboxes);
&read_file("$sendmail/$ARGV[0]", \%fsendmail);
&read_file("$usermin/$ARGV[0]", \%fusermin);
foreach $k (@eorder) {
if ($emailboxes{$k} eq $esendmail{$k} &&
$fsendmail{$k} &&
$fsendmail{$k} ne $esendmail{$k}) {
print "$k=$fsendmail{$k}\n";
}
elsif ($emailboxes{$k} eq $eusermin{$k} &&
$fusermin{$k} &&
$fusermin{$k} ne $eusermin{$k}) {
print "$k=$fusermin{$k}\n";
}
}
# read_file(file, &assoc, [&order], [lowercase])
# Fill an associative array with name=value pairs from a file
sub read_file
{
local $_;
open(ARFILE, "<".$_[0]) || return 0;
while(<ARFILE>) {
chomp;
local $hash = index($_, "#");
local $eq = index($_, "=");
if ($hash != 0 && $eq >= 0) {
local $n = substr($_, 0, $eq);
local $v = substr($_, $eq+1);
$_[1]->{$_[3] ? lc($n) : $n} = $v;
push(@{$_[2]}, $n) if ($_[2]);
}
}
close(ARFILE);
if (defined($main::read_file_cache{$_[0]})) {
%{$main::read_file_cache{$_[0]}} = %{$_[1]};
}
return 1;
}