📄 copyconfig.pl
字号:
# copyconfig.pl# Copy the appropriate config file for each module into the webmin config# directory. If it is already there, merge in new directives. Called with# <osname> <osversion> <install dir> <config dir> <module>+$os = $ARGV[0];$ver = $ARGV[1];$wadir = $ARGV[2];$confdir = $ARGV[3];# Find all clonesopendir(DIR, $wadir);foreach $f (readdir(DIR)) { if (readlink("$wadir/$f")) { @st = stat("$wadir/$f"); push(@{$clone{$st[1]}}, $f); } }closedir(DIR);# For each module, copy its config to itself and all clones@mods = @ARGV[4..$#ARGV];foreach $m (@mods) { $srcdir = "$wadir/$m"; if (-r "$srcdir/config-$os-$ver") { $conf = "$srcdir/config-$os-$ver"; } elsif (-r "$srcdir/config-$os") { $conf = "$srcdir/config-$os"; } elsif (-r "$srcdir/config") { $conf = "$srcdir/config"; } else { $conf = "/dev/null"; } @st = stat($srcdir); @copyto = ( @{$clone{$st[1]}}, $m ); foreach $c (@copyto) { mkdir("$confdir/$c", 0755); undef(%oldconf); undef(%newconf); &read_file("$confdir/$c/config", \%oldconf); &read_file($conf, \%newconf); foreach $k (keys %oldconf) { $newconf{$k} = $oldconf{$k}; } &write_file("$confdir/$c/config", \%newconf); } }# read_file(file, array)# Fill an associative array with name=value pairs from a filesub read_file{local($arr);$arr = $_[1];open(ARFILE, $_[0]) || return 0;while(<ARFILE>) { chop; if (!/^#/ && /^([^=]+)=(.*)$/) { $$arr{$1} = $2; } }close(ARFILE);return 1;} # write_file(file, array)# Write out the contents of an associative array as name=value linessub write_file{local($arr);$arr = $_[1];open(ARFILE, "> $_[0]");foreach $k (keys %$arr) { print ARFILE "$k=$$arr{$k}\n"; }close(ARFILE);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -