#!/bin/bash

REBOOT=0
LAST_REBOOT_FILE=/tmp/acspanel-srv-apache2-last-reboot
MYSQL="mysql -hHOST -uUSER -pPASSWORD DATABASE -B -e "

if [ -e $LAST_REBOOT_FILE ]; then
        LAST_REBOOT=$(stat $LAST_REBOOT_FILE| sed -n 6p |cut -d\  -f2-3|cut -d\. -f1)

	if [[ -z $LAST_REBOOT ]]; then
		LAST_REBOOT=$(date +"%Y-%m-%d %T")
	fi

        SQL="SELECT 'OK' 
                FROM httpd_host 
                LEFT JOIN domain ON httpd_host.domain_id=domain.id 
                LEFT JOIN service ON httpd_host.service_id=service.id 
                LEFT JOIN server ON service.server_id=server.id 
                LEFT JOIN ip_address ON service.ip_id=ip_address.id 
                INNER JOIN information_schema.processlist 
                WHERE httpd_host.enabled=1 AND domain.enabled=1 
                AND ( 
                        processlist.id=connection_id()           
                        AND (
                                SUBSTRING_INDEX(processlist.host,':',1)=ip_address.ip 
                                OR SUBSTRING_INDEX(processlist.host,':',1)=server.hostname
                        ) 
                ) 
                AND (
			STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < httpd_host.updated_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < domain.updated_at 
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < service.updated_at 
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < server.updated_at 
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < ip_address.updated_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < httpd_host.created_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < domain.created_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < service.created_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < server.created_at
                        OR STR_TO_DATE('$LAST_REBOOT', '%Y-%m-%d %H:%i:%s') < ip_address.created_at
                );"

	#echo $SQL

        UPDATED=$($MYSQL "$SQL")

        if [ $(echo "$UPDATED"|wc -l) -gt 1 ]; then
                REBOOT=1
        fi
else
        REBOOT=1
fi

if [ $REBOOT -eq 1 ]; then
        /usr/sbin/apache2ctl configtest > /dev/null 2> /dev/null
        if [ $? -eq 0 ]; then
                /usr/sbin/service apache2 reload  > /dev/null 2> /dev/null
                echo "$LAST_REBOOT" > $LAST_REBOOT_FILE
        fi
fi
