Files
containers/rsync/docker-entrypoint.sh
2021-09-08 12:55:58 -04:00

63 lines
1.9 KiB
Bash
Executable File

#!/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 "$@"