TASKPM/migrate/deploy-watcher
Ren Juan cd3274c509 TASKPM: Fork LibrePlan with Java 21 migration and rebrand
Major changes from LibrePlan upstream:

Migration to Java 21 / Tomcat 9:
- ZK Framework 9.x → 8.6.0.1 (built-in databinding)
- Removed stub classes blocking real ZK databinder
- BCrypt password fix (matches() vs equals())
- Spring Security firewall for double-slash URLs
- I18nHelper _() → tr() (Java 9+ reserved keyword)
- Hibernate TypeContributor for Jadira types
- Fixed ConfigurationModel Currency locale handling

Rebrand to TASKPM:
- Maven project names updated
- web.xml display-name → taskpm-webapp
- CSS files: libreplan.css → taskpm.css
- i18n .po files updated (all locales)
- ZUL page titles updated
- Documentation rebranded

New Features:
- PERT Chart prototype using vis.js (/planner/pert/)
- New doc chapters: 22-taskpm.rst (PERT focus)
- Deploy automation scripts (migrate/)
- Help docs deployed to webapp

Removed:
- Original .forgejo and .github CI workflows (will be replaced)

TASKPM is a personal-oriented planning package integrating
taskwarrior/timewarrior with PERT/CPM Monte Carlo scheduling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:52:02 +00:00

55 lines
1.8 KiB
Bash
Executable file

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