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>
55 lines
1.8 KiB
Bash
Executable file
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
|