mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 16:50:24 +00:00
Fix fix repo script when there are multiple sources configured
This commit is contained in:
@@ -24,36 +24,46 @@ if (-r $webmin_yum_repo_file) {
|
||||
}
|
||||
&flush_file_lines($webmin_yum_repo_file);
|
||||
&unlock_file($webmin_yum_repo_file);
|
||||
&system_logged("rpm --import $webmin_yum_repo_key >/dev/null 2>&1 </dev/null");
|
||||
&system_logged("rpm --import $webmin_yum_repo_key");
|
||||
}
|
||||
|
||||
my $ffixed = 0;
|
||||
foreach my $repo ($webmin_apt_repo_file, $global_apt_repo_file) {
|
||||
# Fix APT repo
|
||||
next if (!-r $repo);
|
||||
&lock_file($repo);
|
||||
my $lref = &read_file_lines($repo);
|
||||
my $fixed = 0;
|
||||
my $lreffix = sub {
|
||||
my ($l) = @_;
|
||||
if ($ffixed) {
|
||||
return "";
|
||||
}
|
||||
else {
|
||||
return $l;
|
||||
}
|
||||
};
|
||||
foreach my $l (@$lref) {
|
||||
if ($l =~ /^\s*deb\s+((http|https):\/\/download.webmin.com\/download\/repository)\s+sarge\s+contrib/) {
|
||||
$l = "deb $webmin_apt_repo_url stable contrib";
|
||||
$l = &$lreffix("deb $webmin_apt_repo_url stable contrib");
|
||||
$fixed++;
|
||||
}
|
||||
elsif ($l =~ /^\s*deb\s+\[signed-by=(\S+)\]\s+((http|https):\/\/download.webmin.com\/download\/repository)\s+sarge\s+contrib/) {
|
||||
$l = "deb [signed-by=$webmin_apt_repo_key] $webmin_apt_repo_url stable contrib";
|
||||
$l = &$lreffix("deb [signed-by=$webmin_apt_repo_key] $webmin_apt_repo_url stable contrib");
|
||||
$fixed++;
|
||||
}
|
||||
}
|
||||
&flush_file_lines($repo);
|
||||
&unlock_file($repo);
|
||||
if ($fixed) {
|
||||
# Put the new key into place
|
||||
&system_logged("gpg --import $devkey >/dev/null 2>&1 </dev/null");
|
||||
my ($asckey, $err);
|
||||
my $ex = &execute_command("gpg --dearmor", $devkey, \$asckey, \$err);
|
||||
&error(&html_escape($err)) if ($ex);
|
||||
&write_file_contents($webmin_apt_repo_key, $asckey);
|
||||
$ffixed++;
|
||||
}
|
||||
}
|
||||
if ($ffixed) {
|
||||
# Put the new key into place
|
||||
&system_logged("gpg --import $devkey");
|
||||
&system_logged("cat $devkey | gpg --dearmor >$webmin_apt_repo_key");
|
||||
}
|
||||
|
||||
&webmin_log("fixrepo");
|
||||
&redirect(get_referer_relative());
|
||||
|
||||
Reference in New Issue
Block a user