#!/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