#!/bin/bash

set -u
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/psa/bin:/opt/psa/bin"
umask 022
log="/var/log/plesk/enable-ip-anonymization.log"

log() {
	echo "$(date) $*" | tee -a "$log"
}

plesk_db() {
	MYSQL_PWD=$(cat /etc/psa/.psa.shadow) mysql -u admin psa -e "$1" | tail -n +2
}

getDomains() {
# Get all domains with enabled log rotation
	plesk_db "select domains.name from domains left join dom_param on domains.id=dom_param.dom_id left join log_rotation on dom_param.val=log_rotation.id where domains.htype='vrt_hst' and dom_param.param='logrotation_id' and log_rotation.turned_on='true'";
}

if [ ! -x "/usr/local/psa/admin/sbin/anonymize_ip" ]; then
	log "This server doesn't support IP anonimization feature"
	exit 1
fi

do_work() {
	echo "Enable IP anonymization"
	plesk bin settings -s logrotate_anonymize_ips=true

	echo "Fix server wide servies"
	plesk sbin logrot_mng --system-logs --anonymize-ip=true

	echo "Fix domains"
	getDomains | while read -r domain; do
		echo "$domain"
		plesk bin domain --update "$domain" -log-rotate true
	done
}

do_work | tee -a "$log"
log "Completed"
