LittleDemon WebShell


Linux sh00002.bigrock.com 5.14.0-687.29.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 23 16:18:48 EDT 2026 x86_64
Path : /scripts/
File Upload :
Command :
Current File : //scripts/uninstall_plugin

#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/uninstall_plugin                Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;

PluginUninstaller::run(@ARGV) unless caller;

package PluginUninstaller;

use Getopt::Long qw(GetOptionsFromArray);
use File::MMagic ();                        # Prevents compilation into binary.
use POSIX        ();

use Cpanel::Plugin::Install         ();
use Cpanel::TempFile                ();
use Cpanel::ExtractFile             ();
use Cpanel::Config::LoadWwwAcctConf ();

my $theme;
my $default_theme;

sub usage {
    my $exit_code = shift || 0;

    print <<"EO_USAGE";
uninstall_plugin /path/to/plugin/archive

  Uninstalls features from the specified plugin archive.

    Options:
      --theme     Theme to uninstall the plugin from (default: $default_theme).

EO_USAGE
    POSIX::_exit($exit_code);
    return;
}

sub bail_out {
    my ($msg) = @_;
    print STDERR "error: $msg\n\n";
    usage(1);
    return;
}

sub run {
    my (@args) = @_;

    my ( $archive, $help );

    my $wwwacctconf = Cpanel::Config::LoadWwwAcctConf::loadwwwacctconf();
    $default_theme = $wwwacctconf->{DEFMOD};

    GetOptionsFromArray(
        \@args,
        'theme=s' => \$theme,
        'help'    => \$help,
    ) || usage(1);

    if ($help) {
        usage(0);
    }

    $theme ||= $default_theme;

    $archive = $args[0];
    if ( !defined $archive ) {
        bail_out 'No archive given!';
    }

    unless ( -e $archive ) {
        bail_out "No file found at $archive";
    }

    my $staging_dir;
    my $temp_dir_obj = Cpanel::TempFile->new;

    if ( !-d $archive ) {

        # determine that the archive is in a format we can actually work with
        my $type = File::MMagic->new->checktype_filename($archive);
        unless ( $type =~ /x-g?(bzip2|tar|zip)$/ ) {
            bail_out "Unrecognized archive format.";
        }

        $staging_dir = $temp_dir_obj->dir( prefix => 'Cpanel-install_plugin' );
        chmod 0755, $staging_dir;

        # extract to staging dir
        my $files = Cpanel::ExtractFile::extractfile( $archive, 'dir' => $staging_dir );
        $staging_dir = Cpanel::Plugin::Install::determine_plugin_docroot($staging_dir);
    }
    else {
        # if $ARGV[0] is a directory, we'll attempt to work with that.
        $staging_dir = $archive;
    }

    if ( !-e "${staging_dir}/install.json" ) {
        print "install.json is missing from the plugin archive, cannot process\n";
        POSIX::_exit(1);
    }

    POSIX::_exit(1) unless Cpanel::Plugin::Install::install_plugin( $staging_dir, $theme, 1 );    # 1 means delete

    print "Plugin uninstalled ok\n";

    return;
}

1;

LittleDemon - FACEBOOK
[ KELUAR ]
Page not found – Sparkplug Films
Small totara tree on ridge above Long Point

Page not found

The page you are looking for doesn't exist, or it has been moved. Please try searching using the form below.