#!/bin/bash
BACKUP_DIR="backup_$(date +%Y%m%d)"
echo "Stopping Tomcat"
systemctl stop tomcat
FILENAME=apache-tomcat-9.0.107.tar.gz
echo "Downloading Tomcat 9.0.107"
curl -o $FILENAME https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.107/bin/apache-tomcat-9.0.107.tar.gz

FILESIZE=$(stat -c%s "$FILENAME")
if [ $FILESIZE -lt 10000 ];
then
	echo "Tomcat did not download correctly! File size of $FILESIZE bytes is to small"
	exit -1
fi

echo "Backup current webapps"
if [ ! -d "$BACKUP_DIR" ];
then
	mkdir $BACKUP_DIR
	cp -rp /usr/share/tomcat/webapps/ $BACKUP_DIR/
	echo "Backup Tomcat configuration"
	cp -p /usr/lib/systemd/system/tomcat.service $BACKUP_DIR/
	cp -rp /etc/tomcat $BACKUP_DIR/etc_tomcat
	cp -rp /usr/libexec/tomcat $BACKUP_DIR/libexec_tomcat
	cp -rp /usr/share/java-utils $BACKUP_DIR/
	cp -p /etc/sysconfig/tomcat $BACKUP_DIR/sysconfig_tomcat
fi
echo "Remove package manager Tomcat"
yum -y remove tomcat

echo "Install downloaded Tomcat"
tar xvzf apache-tomcat-9.0.107.tar.gz -C /opt/
mv /opt/apache-tomcat-9.0.107/ /opt/tomcat
chown -R tomcat:tomcat /opt/tomcat/
rm -fr /usr/share/tomcat/bin

echo "Restoring Tomcat configuration"
if [ ! -d /etc/tomcat/ ];
then
	mkdir /etc/tomcat
	chown -R tomcat:tomcat /etc/tomcat
fi

cp -pR $BACKUP_DIR/etc_tomcat/* /etc/tomcat/
ln -s /opt/tomcat/bin /usr/share/tomcat/bin 
ln -s /etc/tomcat/ /usr/share/tomcat/conf 
ln -s /opt/tomcat/lib /usr/share/tomcat/lib
if [ ! -d /var/log/tomcat ];
then
	mkdir /var/log/tomcat
fi
ln -s  /var/log/tomcat /usr/share/tomcat/logs
ln -s /opt/tomcat/temp /usr/share/tomcat/temp
ln -s /opt/tomcat/webapps /usr/share/tomcat/webapps
ln -s /opt/tomcat/work /usr/share/tomcat/work

chown -R tomcat:tomcat /etc/tomcat
chown -R tomcat:tomcat /opt/tomcat
chown -R tomcat:tomcat /var/log/tomcat
cp $BACKUP_DIR/tomcat.service /usr/lib/systemd/system/tomcat.service

# Remove existing from download
rm -fr /usr/share/tomcat/webapps/*
# Copy backup
cp -R $BACKUP_DIR/webapps/* /usr/share/tomcat/webapps/
chown -R tomcat:tomcat /usr/share/tomcat/webapps/
cp $BACKUP_DIR/sysconfig_tomcat /etc/sysconfig/tomcat
cp -R $BACKUP_DIR/libexec_tomcat /usr/libexec/tomcat 
cp -R $BACKUP_DIR/java-utils /usr/share
chown -R tomcat:tomcat /etc/sysconfig/tomcat
chown -R tomcat:tomcat /usr/share/java-utils
chown -R tomcat:tomcat /usr/libexec/tomcat
# alternatives --set java java-1.8.0-openjdk.x86_64
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
echo "Current Tomcat details"
java -cp /usr/share/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
