#!/bin/sh
set -eu

: "${BACKUP_CRON:=0 3 * * *}"

case "$BACKUP_CRON" in
    *"
"*)
        echo "BACKUP_CRON must contain a single cron expression." >&2
        exit 1
        ;;
esac

cron_field_count="$(printf "%s\n" "$BACKUP_CRON" | awk '{ print NF }')"

if [ "$cron_field_count" -ne 5 ]; then
    echo "BACKUP_CRON must contain exactly five fields." >&2
    exit 1
fi

mkdir -p /backups
umask 077

printf "%s /usr/local/bin/backup-database scheduled >> /proc/1/fd/1 2>> /proc/1/fd/2\n" \
    "$BACKUP_CRON" > /etc/crontabs/root

if [ "${BACKUP_RUN_ON_START:-false}" = "true" ]; then
    /usr/local/bin/backup-database startup
fi

echo "Database backup cron configured: $BACKUP_CRON"
exec crond -f -l 2
