#!/bin/bash ################################################################################ # INIT ################################################################################ # Provide CRON_TASK_* via environment variable > /etc/crontabs/root for item in `env`; do case "$item" in CRON_TASK*) ENVVAR=`echo $item | cut -d \= -f 1` printenv $ENVVAR >> /etc/crontabs/root echo "root" > /etc/crontabs/cron.update ;; esac done if [ "$1" == "client" ]; then exec /usr/sbin/crond -f fi if [ "$NOMAD_TASK_NAME" == "init" ]; then echo "Starting RSYNC" flock -x /locks/${NOMAD_GROUP_NAME}_rsync.lock rsync -avv --exclude=Backups --exclude='*.db*' --exclude='*.db' --exclude='*db-litestream' --exclude='generations' /configbackup/ /config/ --delete-before --delete-excluded echo "Ensure no DBs" rm -rf /config/*.db* rm -rf /config/database.sqlite echo "Starting DB Restore" /usr/local/bin/litestream restore -config /local/litestream.yml /config/${DB_NAME} chown ${PUID:-1000}:${PGID:-1000} /config/*.db* if [ -n "$DBCHMOD" ]; then chmod ${DBCHMOD} /config/${DB_NAME}.db; fi exit 0 fi if [ "$NOMAD_TASK_NAME" == "finalsync" ]; then echo "Starting RSYNC" flock -x /locks/${NOMAD_GROUP_NAME}_rsync.lock rsync -avv --exclude=Backups --exclude='*.db*' --exclude='*.db' --exclude='*db-litestream' --exclude='generations' /config/ /configbackup/ exit 0 fi if [ "$NOMAD_TASK_NAME" == "db-sync" ]; then echo "Starting DBsync: sleep" #give time for app to datart properly sleep ${SLEEPTIME:-15m} echo "Starting DBsync" exec flock -x /configbackup/${NOMAD_GROUP_NAME}_litesync.lock /usr/local/bin/litestream replicate -config /local/litestream.yml exit 0 fi ################################################################################ # Anything else ################################################################################ exec "$@"