forked from webmin/webmin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuninstall_mods.cgi
executable file
·57 lines (50 loc) · 1.34 KB
/
uninstall_mods.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/local/bin/perl
# Uninstall a bunch of perl module groups, after asking for confirmation
require './cpan-lib.pl';
&ReadParse();
&error_setup($text{'uninstalls_err'});
@d = split(/\0/, $in{'d'});
@d || &error($text{'uninstalls_enone'});
if ($in{'upgrade'}) {
# Just redirect to the install page from CPAN
&redirect("download.cgi?missingok=1&source=3&cpan=".
&urlize(join(" ", @d)));
exit;
}
# Get the modules
@allmods = &list_perl_modules();
foreach $d (@d) {
($mod) = grep { $_->{'name'} eq $d } @allmods;
if ($mod) {
push(@mods, $mod);
}
}
if ($in{'confirm'}) {
# Go ahead and do it
foreach $mod (@mods) {
$err = &remove_module($mod);
&error(&text('uninstalls_emod', "<tt>$mod</tt>", $err))
if ($err);
}
&redirect("");
}
else {
# Ask the user if he is sure
&ui_print_header(undef, $text{'uninstalls_title'}, "");
print &ui_form_start("uninstall_mods.cgi", "post");
print "<center>\n";
foreach $d (@d) {
print &ui_hidden("d", $d),"\n";
}
$mcount = 0;
$fcount = 0;
foreach $mod (@mods) {
$mcount += scalar(@{$mod->{'mods'}})-1;
$fcount += scalar(@{$mod->{'packlist'}})+1;
}
print &text('uninstalls_rusure', scalar(@mods), $mcount, $fcount),
"<p>\n";
print "<input type=submit name=confirm ",
"value='$text{'uninstall_ok'}'></center></form>\n";
&ui_print_footer("", $text{'index_return'});
}