Mini Shell

Direktori : /proc/thread-self/root/usr/share/
Upload File :
Current File : //proc/thread-self/root/usr/share/av-userside-plugin.sh

#!/usr/bin/bash

DIRECTADMIN_PLUGIN="/usr/local/directadmin/plugins/Imunify"
CPANEL_PLUGIN="/usr/local/cpanel/base/frontend/jupiter/imunify"
USERSIDE_PLUGIN_FLAG="/var/imunify360/av-userside-plugin.installed"

# Get the name of installed panel
get_panel() {
    if [ -e /usr/local/cpanel/cpanel ]; then
        printf "cpanel\n"
    elif [ -e /usr/local/directadmin/directadmin ]; then
        printf "directadmin\n"
    elif [ -e /usr/sbin/plesk ]; then
        printf "plesk\n"
    else
        return 1
    fi
}

install_cpanel() {
    for theme in $(ls -d /usr/local/cpanel/base/frontend/*/ | sed 's|/usr/local/cpanel/base/frontend/||g' | sed 's/\/$//'); do
        if [[ "${theme}" != "jupiter" ]]; then
            mkdir -p "/usr/local/cpanel/base/frontend/${theme}/imunify"
            cp -a "${CPANEL_PLUGIN}" "/usr/local/cpanel/base/frontend/${theme}"
        fi
        /usr/local/cpanel/scripts/install_plugin /etc/sysconfig/imunify360/cpanel/antivirus_conf --theme "${theme}"
    done
    touch "${USERSIDE_PLUGIN_FLAG}"
}

install_directadmin() {
    local enabled_plugin="${DIRECTADMIN_PLUGIN}/user"
    local disabled_plugin="${DIRECTADMIN_PLUGIN}/.user"

    if [[ -d "${disabled_plugin}" ]] && [[ -n "$(ls -A "${disabled_plugin}")" ]]; then
        rm -rf "${enabled_plugin}"
        mv "${disabled_plugin}" "${enabled_plugin}"
    fi
    touch "${USERSIDE_PLUGIN_FLAG}"
}

install_plesk() {
    if [[ ! -e "${USERSIDE_PLUGIN_FLAG}" ]]; then
        touch "${USERSIDE_PLUGIN_FLAG}"
    fi
}

remove_cpanel() {
    for theme in $(ls -d /usr/local/cpanel/base/frontend/*/ | sed 's|/usr/local/cpanel/base/frontend/||g' | sed 's/\/$//'); do
        /usr/local/cpanel/scripts/uninstall_plugin /etc/sysconfig/imunify360/cpanel/antivirus_conf --theme "${theme}"
        rm -rf "/usr/local/cpanel/base/frontend/${theme}/imunify"
    done
    rm -f "${USERSIDE_PLUGIN_FLAG}"
}

remove_directadmin() {
    local enabled_plugin="${DIRECTADMIN_PLUGIN}/user"
    local disabled_plugin="${DIRECTADMIN_PLUGIN}/.user"

    if [[ -d "${enabled_plugin}" ]] && [[ -n "$(ls -A "${enabled_plugin}")" ]]; then
        rm -rf "${disabled_plugin}"
        mv "${enabled_plugin}" "${disabled_plugin}"
    fi
    rm -f "${USERSIDE_PLUGIN_FLAG}"
}

remove_plesk() {
    if [[ -e "${USERSIDE_PLUGIN_FLAG}" ]]; then
        rm -f "${USERSIDE_PLUGIN_FLAG}"
    fi
}

update_cpanel() {
    if [[ -e "${USERSIDE_PLUGIN_FLAG}" ]]; then
        install_cpanel
    else
        printf "User-side plugin is not installed. Skipping update...\n"
    fi
}

update_directadmin() {
    if [[ ! -e "${USERSIDE_PLUGIN_FLAG}" ]] && [[ -e "${DIRECTADMIN_PLUGIN}/user" ]]; then
        remove_directadmin
    fi
}

update_plesk() {
    install_plesk
}

update_package_config_cpanel() {
    for theme in $(ls -d /usr/local/cpanel/base/frontend/*/ | sed 's|/usr/local/cpanel/base/frontend/||g' | sed 's/\/$//'); do
        local theme_path="/usr/local/cpanel/base/frontend/${theme}/imunify/assets/js/config.js"
        if [[ -f "${theme_path}" ]]; then
            if ! grep -q "IMUNIFY_PACKAGE" "${theme_path}"; then
                printf "var IMUNIFY_PACKAGE = '360'\n" > "${theme_path}"
            else
                sed -i -E "s/IMUNIFY_PACKAGE = 'AV'/IMUNIFY_PACKAGE = '360'/" "${theme_path}"
            fi
        fi
    done
}

update_package_config_directadmin() {
    install_directadmin
}

update_package_config_plesk() {
    printf "Updating package config for Plesk is not implemented.\n"
}

main() {
    local panel; panel=$(get_panel)

    if [[ -z "${panel}" ]]; then
        printf "Detected panel doesn't support av user side plugin\n"
        exit 0
    fi

    case "${1}" in
        "-r")
            "remove_${panel}"
            ;;
        "-u")
            "update_${panel}"
            ;;
        "-update-package")
            "update_package_config_${panel}"
            ;;
        "")
            "install_${panel}"
            ;;
        *)
            printf "Unrecognized option: %s\n" "${1}"
            exit 1
            ;;
    esac
}

main "$@"

Zerion Mini Shell 1.0