Current File : //usr/share/webmin/init/uninstall.pl |
# uninstall.pl
# Called when webmin is uninstalled
require 'init-lib.pl';
sub module_uninstall
{
local %miniserv;
&get_miniserv_config(\%miniserv);
return if (!$miniserv{'atboot'});
local $product = $config{'atboot_product'} || "webmin";
local $ucproduct = ucfirst($product);
if ($init_mode eq "osx") {
# Remove from hostconfig file
open(LOCAL, "<".$config{'hostconfig'});
@local = <LOCAL>;
close(LOCAL);
$start = "WEBMIN=-";
&open_tempfile(LOCAL, ">$config{'hostconfig'}");
&print_tempfile(LOCAL, grep { !/^$start/ } @local);
&close_tempfile(LOCAL);
print STDERR "Deleted from $config{'hostconfig'}\n";
# get rid of the startup items
$paramlist = "$config{'darwin_setup'}/$ucproduct/$config{'plist'}";
$scriptfile = "$config{'darwin_setup'}/$ucproduct/$ucproduct";
print STDERR "Deleting $config{'darwin_setup'}/$ucproduct ..";
unlink ($paramlist);
unlink ($scriptfile);
print STDERR "\. ", rmdir ("$config{'darwin_setup'}/$ucproduct") ? "Success":"Failed", "\n";
}
elsif ($init_mode eq "local") {
# Remove from boot time rc script
open(LOCAL, "<".$config{'local_script'});
@local = <LOCAL>;
close(LOCAL);
$start = "$config_directory/start";
&open_tempfile(LOCAL, ">$config{'local_script'}");
&print_tempfile(LOCAL, grep { !/^$start/ } @local);
&close_tempfile(LOCAL);
print STDERR "Deleted from bootup script $config{'local_script'}\n";
}
elsif ($init_mode eq "init" || $init_mode eq "upstart") {
# Delete bootup action
foreach (&action_levels('S', $product)) {
/^(\S+)\s+(\S+)\s+(\S+)$/;
&delete_rl_action($product, $1, 'S');
}
foreach (&action_levels('K', $product)) {
/^(\S+)\s+(\S+)\s+(\S+)$/;
&delete_rl_action($product, $1, 'K');
}
$fn = &action_filename($product);
unlink($fn);
print STDERR "Deleted init script $fn\n";
}
elsif ($init_mode eq "win32") {
# Delete win32 service
&delete_win32_service($product);
}
elsif ($init_mode eq "systemd") {
# Delete systemd service
&delete_systemd_service($product);
}
}
1;