#!/bin/bash

# Set FRONTIER_GROUP
export FRONTIER_GROUP="`id -ng ${FRONTIER_USER}`"

# pid dir
mkdir -p $PID_DIR
chown ${FRONTIER_USER}:${FRONTIER_GROUP} ${PID_DIR}

#
# Creating configuration files
#
UNPROTO_COMMON_ARGS="FRONTIER_PREFIX FRONTIER_TOMCAT_LOGS FRONTIER_USER FRONTIER_GROUP SQUID_LOGS PID_DIR CONFIG_FILE" # Not all vars are used by all protos
${UNPROTO_SH} ${FRONTIER_PREFIX}/bin/findmodifiedqueries.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/modifiedqueries_rotate.sh.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/frontier-tomcat.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/modifiedqueries.logrotate.proto 0 644 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/cron.proto 0 644 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/updatetnsnames.sh.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/frontier-tomcat.conf.proto 0 644 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/tomcat_rotate_funcs.sh.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/tomcat_rotate_daily.sh.proto 0 755 ${UNPROTO_COMMON_ARGS}
${UNPROTO_SH} ${FRONTIER_PREFIX}/etc/tomcat_rotate_hourly.sh.proto 0 755 ${UNPROTO_COMMON_ARGS}

# Install frontier-tomcat.conf
cp ${FRONTIER_PREFIX}/etc/frontier-tomcat.conf /usr/lib/tmpfiles.d/frontier-tomcat.conf
chmod 644 /usr/lib/tmpfiles.d/frontier-tomcat.conf

# Install the cron job
cp ${FRONTIER_PREFIX}/etc/cron /etc/cron.d/frontier-tomcat.cron
chmod 644 /etc/cron.d/frontier-tomcat.cron
#
chown root ${FRONTIER_PREFIX}
find `ls -d ${FRONTIER_PREFIX}/*|grep -v '/sbin$'` ! -user ${FRONTIER_USER} -print0|xargs -0 --no-run-if-empty chown ${FRONTIER_USER}:${FRONTIER_GROUP}
find ${FRONTIER_PREFIX}/sbin ! -user root|xargs --no-run-if-empty chown root
chmod 700 ${FRONTIER_PREFIX}/etc/frontier-tomcat-configurator
chmod 700 ${FRONTIER_PREFIX}/bin/findmodifiedqueries

# Create symbolic link with tomcat distribution
cd ${FRONTIER_PREFIX}
#TBD: Change this to be more clean and simple:
tomcat_dir=`find . -type d -name "apache-tomcat-10.1.54" | tail -1`

# TBD: Further simplify
if [ -h "./tomcat" ]; then # file is a symbolic link
   /bin/rm ./tomcat
fi
ln -fs ${tomcat_dir} ./tomcat

# Install server.xml.proto file.
install -m 644 ${FRONTIER_PREFIX}/conf/server.xml.proto ${FRONTIER_PREFIX}/tomcat/conf/server.xml.proto
chown ${FRONTIER_USER}:${FRONTIER_GROUP} ${FRONTIER_PREFIX}/tomcat/conf/server.xml.proto
# Install logging.properties
install -m 644 ${FRONTIER_PREFIX}/conf/logging.properties ${FRONTIER_PREFIX}/tomcat/conf/logging.properties

# Set tcp_keepalive variables if not set at /etc/sysctl.conf
if [ `grep tcp_keepalive_ /etc/sysctl.conf|wc -l` -eq 0 ];then
	# Adding to /etc/sysctl.conf. 
	echo "">>/etc/sysctl.conf
	echo "# Added by the frontier-tomcat package">>/etc/sysctl.conf
	echo "net.ipv4.tcp_keepalive_time  = 120">>/etc/sysctl.conf
	echo "net.ipv4.tcp_keepalive_intvl = 5">>/etc/sysctl.conf
	# add also by sysctl and restart network, to cause the change to apply already
	/sbin/sysctl net.ipv4.tcp_keepalive_time=120 net.ipv4.tcp_keepalive_intvl=5
        systemctl restart NetworkManager.service
fi

# create a symbolic link to logs, if needed.
tom_dirlog="${RPM_INSTALL_PREFIX}/tomcat/logs" # The logs are actually here
if [ "${tom_dirlog}" != "${FRONTIER_TOMCAT_LOGS}" ]; then
	if [ ! -d ${FRONTIER_TOMCAT_LOGS} ]; then
		/bin/mkdir ${FRONTIER_TOMCAT_LOGS}
		chown ${FRONTIER_USER}:${FRONTIER_GROUP}  ${FRONTIER_TOMCAT_LOGS}
	fi
	if [ -d ${tom_dirlog} ]; then
		cd ${tom_dirlog}/..
		/bin/rm -fr ${tom_dirlog}
	fi
	ln -fs ${FRONTIER_TOMCAT_LOGS} ${tom_dirlog}
	chown -R ${FRONTIER_USER}:${FRONTIER_GROUP} ${FRONTIER_TOMCAT_LOGS}
fi

