File: /var/lib/dpkg/info/imunify360-php-i360.prerm
#!/bin/bash
set -e
is_cloudways()
{
CW_REGEXP=".*\.cloudways(apps|stagingapps).com$"
APM_BIN=/usr/local/sbin/apm
HOSTNAME=$(hostname -f | sed 's/.*/\L&/g')
if [[ ${HOSTNAME} =~ ${CW_REGEXP} ]]; then
return 0
fi
if [ -f ${APM_BIN} ]; then
if ${APM_BIN} info | grep -q "Cloudways"; then
return 0
fi
fi
return 1
}
case "$1" in
purge|remove)
declare -a altphps
altphps=(`cat "/usr/share/i360-php/altphps.txt"`)
LIBS=""
if [ "$(uname -m)" == "x86_64" ]; then
LIBS="/x86_64-linux-gnu"
fi
for value in "${altphps[@]}"; do
if [ -e "/opt/alt/${value}/etc/php.ini" ]; then
if grep --silent i360 /opt/alt/${value}/etc/php.ini
then
sed -i '/i360\./d' /opt/alt/${value}/etc/php.ini
sed -i '/\[i360\]/d' /opt/alt/${value}/etc/php.ini
fi
fi
if [ -e "/opt/alt/${value}/etc/php.d/i360.ini" ]; then
rm -f "/opt/alt/${value}/etc/php.d/i360.ini"
fi
done
#detect native php if exists for Plesk
if [ -e /usr/local/psa/version ]; then
if [ -e /usr/bin/php ]; then
VERS=$(/usr/bin/php --version | head -n1 | cut -d' ' -f2 | cut -c 1,3)
INI_EXISTS=$(/usr/bin/php -i | grep "Scan this dir for additional .ini files" | cut -d"=" -f2 | tr ">" " " | sed 's/^ *//;s/ *$//')
if [ -e "/opt/alt/php${VERS}/usr/lib${LIBS}/php/modules/" -a -n "$INI_EXISTS" -a -e "$INI_EXISTS" ]; then
# Will purge i360.so just after i360.ini to avoing nonzero exit code from php -i
EXT_DIR=$(/usr/bin/php -i | grep -e "^extension_dir" | cut -d"=" -f2 | tr ">" " " | sed 's/^ *//;s/ *$//')
#ICPD-675: Fix i360.so
INI_PATH=$(dirname $(dirname $(/usr/bin/php -i | grep "Scan this dir for additional .ini files" | cut -d"=" -f2 | tr ">" " " | sed 's/^ *//;s/ *$//')))
if [ -e /usr/sbin/phpdismod ];then
/usr/sbin/phpdismod i360
fi
while read ini_name; do
is_i360=$(echo "${INI_PATH}/mods-available/${ini_name}" | grep "i360.ini" | cat)
if [ -n "$is_i360" ];then
rm -f ${INI_PATH}/mods-available/${ini_name}
fi
done << EOF
$(ls -1 "${INI_PATH}/mods-available/")
EOF
if [ -e /etc/php.d/i360.ini ]; then
rm -f /etc/php.d/i360.ini
fi
if [ -e "${EXT_DIR}/i360.so" ]; then
rm -f ${EXT_DIR}/i360.so
fi
fi
fi
fi
# detect native php if exists for DA
if [ -e /usr/local/directadmin/custombuild ]; then
if [ -x /usr/share/i360-php/easyapache3/native_da.hook ]; then
/usr/share/i360-php/easyapache3/native_da.hook --remove-i360
fi
for unit in $(systemctl list-units --state=running "php-fpm*" | grep "loaded active" | awk '{ print $1 }')
do
systemctl restart $unit
done
fi
if is_cloudways; then
if [ -x /usr/share/i360-php/native-php/install-clean.sh ]; then
/usr/share/i360-php/native-php/install-clean.sh --uninstall-i360
for unit in $(systemctl list-units --state=running "php-fpm*" | grep "loaded active" | awk '{ print $1 }')
do
systemctl restart $unit
done
fi
fi
for value in "${altphps[@]}"; do
if [ -f /opt/alt/${value}/usr/lib${LIBS}/php/modules/i360.so ]; then
rm -f /opt/alt/${value}/usr/lib${LIBS}/php/modules/i360.so
fi
if [ -f /opt/alt/${value}/etc/php.d.all/i360.ini ]; then
rm -f /opt/alt/${value}/etc/php.d.all/i360.ini
fi
done
rm -f /etc/cron.d/i360_pkg_watcher
;;
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0