-
-
Notifications
You must be signed in to change notification settings - Fork 117
/
Copy pathunscript_install.cgi
executable file
·113 lines (97 loc) · 3.29 KB
/
unscript_install.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/local/bin/perl
# Actually un-install some script, after asking for confirmation
require './virtual-server-lib.pl';
&ReadParse();
&error_setup($text{'scripts_uerr'});
$d = &get_domain($in{'dom'});
&can_edit_domain($d) && &can_edit_scripts() || &error($text{'edit_ecannot'});
if ($in{'upgrade'}) {
# Just redirect to the install form, in upgrade mode
&redirect("script_form.cgi?dom=$in{'dom'}&script=$in{'script'}&version=$in{'version'}&upgrade=1");
exit;
}
elsif ($in{'stop'}) {
# Redirect to Rails server stop form
&redirect("stop_script.cgi?dom=$in{'dom'}&script=$in{'script'}");
}
elsif ($in{'start'}) {
# Redirect to Rails server start form
&redirect("start_script.cgi?dom=$in{'dom'}&script=$in{'script'}");
}
elsif ($in{'restart'}) {
# Redirect to Rails server restart form
&redirect("restart_script.cgi?dom=$in{'dom'}&script=$in{'script'}");
}
elsif ($in{'reinstall_deps'}) {
# Redirect to reinstall dependencies form
&redirect("script_reinstall_dependencies.cgi?dom=$in{'dom'}&script=$in{'script'}");
}
# Get the script being removed
@got = &list_domain_scripts($d);
($sinfo) = grep { $_->{'id'} eq $in{'script'} } @got;
$sinfo || &error($text{'scripts_egone'});
$script = &get_script($sinfo->{'name'});
if ($in{'confirm'}) {
# Do it
&ui_print_unbuffered_header(&domain_in($d), $text{'scripts_utitle'}, "");
# Get locks
&obtain_lock_web($d);
&obtain_lock_cron($d);
# Call the un-install function
&$first_print(&text('scripts_uninstalling', $script->{'desc'},
$sinfo->{'version'}));
($ok, $msg) = &{$script->{'uninstall_func'}}($d, $sinfo->{'version'},
$sinfo->{'opts'});
&$indent_print();
print $msg,"<br>\n";
&$outdent_print();
if ($ok) {
&$second_print($text{'setup_done'});
# Remove any custom PHP directory
&clear_php_version($d, $sinfo);
# Remove custom proxy path
&delete_noproxy_path($d, $script, $sinfo->{'version'},
$sinfo->{'opts'});
# Record script un-install in domain
&remove_domain_script($d, $sinfo);
&run_post_actions();
&webmin_log("uninstall", "script", $sinfo->{'name'},
{ 'ver' => $sinfo->{'version'},
'desc' => $sinfo->{'desc'},
'dom' => $d->{'dom'} });
}
else {
&$second_print($text{'scripts_failed'});
}
&release_lock_web($d);
&release_lock_cron($d);
}
else {
# Ask first
&ui_print_header(&domain_in($d), $text{'scripts_utitle'}, "");
print "<center>\n";
print &ui_form_start("unscript_install.cgi");
print &ui_hidden("dom", $in{'dom'}),"\n";
print &ui_hidden("script", $in{'script'}),"\n";
$opts = $sinfo->{'opts'};
$sz = &nice_size(&disk_usage_kb($opts->{'dir'})*1024);
print &text('scripts_rusure',
&ui_text_color("$script->{'desc'} $sinfo->{'version'}", 'danger'),
$opts->{'dir'}, $sz),"\n";
if ($opts->{'db'}) {
($dbtype, $dbname) = split(/_/, $opts->{'db'}, 2);
print &text('scripts_rusuredb',
$text{'databases_'.$dbtype}, $dbname),"\n";
}
print "<p>\n";
if ($opts->{'dir'} eq &public_html_dir($d)) {
# Show extra warning about public_html
print &text('scripts_rusurehome',
&public_html_dir($d, 1)),"<p>\n";
}
print "<p></p>", &ui_submit($text{'scripts_uok2'}, "confirm");
print &ui_form_end();
print "</center>\n";
}
&ui_print_footer("list_scripts.cgi?dom=$in{'dom'}", $text{'scripts_return'},
&domain_footer_link($d));