TASKPM/migrate/deploy-watcher

56 lines
1.8 KiB
Text
Raw Permalink Normal View History

#!/bin/bash
# Deploy watcher - run with sudo, triggers on file creation
# Usage: sudo ./deploy-watcher
TRIGGER_FILE="/space/work/pkgs/libreplan/migrate/trigger"
LOG_FILE="/space/work/pkgs/libreplan/migrate/localhost.log"
CATALINA_LOG="/space/work/pkgs/libreplan/migrate/catalina.out"
echo "Watcher started. Waiting for trigger file: $TRIGGER_FILE"
while true; do
if [ -f "$TRIGGER_FILE" ]; then
WAIT_SECS=$(cat "$TRIGGER_FILE" 2>/dev/null || echo 15)
rm -f "$TRIGGER_FILE"
echo "=== $(date): Triggered with ${WAIT_SECS}s wait ==="
echo "Stopping Tomcat..."
systemctl stop tomcat9
echo "Removing old deployment..."
rm -rf /opt/tomcat/webapps/libreplan*
rm -rf /opt/tomcat/work/Catalina/localhost/libreplan
rm -f /opt/tomcat/work/Catalina/localhost/libreplan/SESSIONS.ser
echo "Deploying new WAR..."
cp /space/work/pkgs/libreplan/libreplan-webapp/target/libreplan-webapp.war /opt/tomcat/webapps/libreplan.war
echo "Clearing logs..."
truncate -s 0 /opt/tomcat/logs/catalina.out
rm -f /opt/tomcat/logs/localhost.*.log
echo "Starting Tomcat..."
systemctl start tomcat9
echo "Waiting ${WAIT_SECS}s..."
sleep $WAIT_SECS
echo "Copying logs..."
CATALINA_DATE_LOG=$(ls -t /opt/tomcat/logs/catalina.*.log 2>/dev/null | head -1)
if [ -n "$CATALINA_DATE_LOG" ]; then
cp "$CATALINA_DATE_LOG" "$CATALINA_LOG"
chmod 644 "$CATALINA_LOG"
fi
LOCALHOST_LOG=$(ls -t /opt/tomcat/logs/localhost.*.log 2>/dev/null | head -1)
if [ -n "$LOCALHOST_LOG" ]; then
cp "$LOCALHOST_LOG" "$LOG_FILE"
chmod 644 "$LOG_FILE"
fi
echo "=== Deploy cycle complete ==="
fi
sleep 1
done