Mini Shell
Direktori : /usr/share/ |
|
Current File : //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