9 Star 27 Fork 0

Gitee 极速下载/Webmin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/webmin/webmin
克隆/下载
newmods.pl 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
# newmods.pl
# Updates an acl file to include new modules. Called with the parameters
# <config directory> <module>+
for($i=1; $i<@ARGV; $i++) {
if (!(-d "$ARGV[0]/$ARGV[$i]")) {
push(@new, $ARGV[$i]);
}
}
if (@new) {
# Read in the existing file
open(ACL, "<$ARGV[0]/webmin.acl");
@acl = <ACL>;
close(ACL);
# Get the list of users to grant new modules to
if (open(NEWMODS, "<$ARGV[0]/newmodules")) {
while(<NEWMODS>) {
s/\r|\n//g;
$users{$_}++ if (/\S/);
}
close(NEWMODS);
$newmods++;
}
if ($newmods) {
# Find the users to add to
for($i=0; $i<@acl; $i++) {
if ($acl[$i] =~ /^(\S+):/ && $users{$1}) {
push(@pos, $i);
}
}
}
else {
# Just use 'root' or 'admin' or the first user in the file
$pos[0] = 0;
for($i=0; $i<@acl; $i++) {
if ($acl[$i] =~ /^(\S+):/ &&
($1 eq 'root' || $1 eq 'admin')) {
$pos[0] = $i;
last;
}
}
}
# Update it with new modules
foreach $pos (@pos) {
$acl[$pos] =~ /^(\S+):\s*(.*)$/ || next;
$name = $1; @list = split(/\s+/, $2);
foreach $o (@list) { $old{$o}++; }
foreach $n (@new) {
push(@list, $n) if (!$old{$n});
}
$acl[$pos] = "$name: ".join(" ",@list)."\n";
}
# Write it out
open(ACL, ">$ARGV[0]/webmin.acl");
print ACL @acl;
close(ACL);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Perl
1
https://gitee.com/mirrors/webmin.git
git@gitee.com:mirrors/webmin.git
mirrors
webmin
Webmin
master

搜索帮助