#!/bin/sh -e

# Source debconf library.
. /usr/share/debconf/confmodule

if [ "$1" != configure ]; then
    exit 0
fi

AAT="aat"
OCTO="octopussy"
CHMOD="/bin/chmod 644"
CHMOD_X="/bin/chmod 755"
CHOWN="/bin/chown -R $OCTO:$OCTO"
CP="/bin/cp -f"
ECHO="/bin/echo"
FIND="/usr/bin/find"
LN="/bin/ln -f -s"
MKDIR="/bin/mkdir -p"
MKFIFO="/usr/bin/mkfifo"
SED="/bin/sed -i -e"
INVOKERC="/usr/sbin/invoke-rc.d"
UPDATERC="/usr/sbin/update-rc.d"
DIR_FIFO="/var/spool/octopussy/"
FILE_FIFO="/var/spool/octopussy/octo_fifo"

#
# Create Directories & Change Octopussy permission files
#
$MKDIR /var/lib/$OCTO/
$MKDIR /var/run/$AAT/
$MKDIR /var/run/$OCTO/
$CHOWN /etc/$AAT/ /etc/$OCTO/ /usr/share/$AAT/ /usr/share/$OCTO/ /usr/sbin/octo* 2> /dev/null || true
$CHOWN /var/lib/$OCTO/ /var/run/$AAT/ /var/run/$OCTO/ 2> /dev/null || true
$FIND /usr/share/perl5/AAT* -name "*.pm" |xargs $CHMOD
$FIND /usr/share/perl5/Octopussy* -name "*.pm" |xargs $CHMOD
$CHMOD_X /usr/sbin/octo*

#
# Create Octopussy MySQL Database
#
db_get octopussy/mysql_root_password && MYSQL="/usr/bin/mysql -u root --password=$RET --exec"

$MYSQL="CREATE DATABASE IF NOT EXISTS $OCTO" || true
$MYSQL="CREATE TABLE IF NOT EXISTS $OCTO._alerts_ (log_id bigint(20) NOT NULL auto_increment, alert_id varchar(250) default NULL, status varchar(50) default 'Opened', level varchar(50) default NULL, date_time datetime default NULL, device varchar(250) default NULL, log text default NULL, comment text default NULL, PRIMARY KEY(log_id))" || true
$MYSQL="INSERT IGNORE INTO mysql.user (host,user,password, file_priv) values ('localhost','octopussy',password('octopussy'), 'Y')" || true
$MYSQL="INSERT IGNORE INTO mysql.db (host,user,db,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) values ('localhost','octopussy','octopussy','Y','Y','Y','Y','Y','Y')" || true
$MYSQL="FLUSH PRIVILEGES" || true


#
# Add octo_logrotate to cron.daily
#
CRON_FILE="/etc/cron.daily/octo_logrotate"

$ECHO "#!/bin/sh" > $CRON_FILE
$ECHO "" >> $CRON_FILE
$ECHO "test -x /usr/sbin/octo_logrotate || exit 0" >> $CRON_FILE
$ECHO "sudo -u octopussy /usr/sbin/octo_logrotate --quiet" >> $CRON_FILE
$CHMOD_X $CRON_FILE 2> /dev/null || true

#
# Create init files
#
$LN /usr/sbin/$OCTO /etc/init.d/$OCTO || true
$UPDATERC $OCTO defaults 99 || true

#
# Apache2 Configuration
#
$MKDIR /var/cache/$OCTO/asp/
$CHOWN /var/cache/$OCTO/asp/ 2> /dev/null || true
$LN /usr/share/$AAT/ /usr/share/$OCTO/AAT
$MKDIR /var/lib/$OCTO/rrd_png/
$CHOWN /var/lib/$OCTO/rrd_png/
$LN /var/lib/$OCTO/rrd_png/ /usr/share/$OCTO/rrd 

#
# Octopussy FIFO creation (for Rsyslog)
#
$MKDIR $DIR_FIFO
$MKFIFO $FILE_FIFO 2> /dev/null || true
$CHOWN $DIR_FIFO

#
# Restart Octopussy & (Rsyslog or Syslog-ng)
#

$INVOKERC octopussy start 2> /dev/null || true

if [ -e /etc/rsyslog.conf ]; then
	$INVOKERC rsyslog stop 2> /dev/null || true
	$SED 's/^\$ActionFileDefaultTemplate *RSYSLOG_TraditionalFileFormat/#\$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat/' /etc/rsyslog.conf
	$SED 's/# *\$ModLoad *imudp/\$ModLoad imudp/' /etc/rsyslog.conf
	$SED 's/# *\$UDPServerRun *514/\$UDPServerRun 514/' /etc/rsyslog.conf
	$SED 's/# *\$ModLoad *imtcp/\$ModLoad imtcp/' /etc/rsyslog.conf
	$SED 's/# *\$InputTCPServerRun *514/\$InputTCPServerRun 514/' /etc/rsyslog.conf
	$INVOKERC rsyslog start 2> /dev/null || true
fi

if [ -e /etc/syslog-ng/syslog-ng.conf ]; then
	$INVOKERC syslog-ng stop 2> /dev/null || true
	mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.old
	cp /etc/octopussy/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
	$INVOKERC syslog-ng start 2> /dev/null || true
fi

db_stop

exit 0
