Files
10Backward/entrypoint.sh
T

56 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
export DEBIAN_FRONTEND="${DEBIAN_FRONTEND:-noninteractive}"
export TZ="${TZ:-Europe/Berlin}"
if [ -f /usr/share/zoneinfo/"${TZ}" ] && [ ! -f /etc/localtime ]; then
ln -snf /usr/share/zoneinfo/"${TZ}" /etc/localtime || true
fi
required_vars=(
MASTODON_BASE_URL
MASTODON_ACCESS_TOKEN
SITE_URL
HASHTAGS
RUN_AT
)
missing=()
for var in "${required_vars[@]}"; do
if [ -z "${!var:-}" ]; then
missing+=("${var}")
fi
done
if [ "${#missing[@]}" -gt 0 ]; then
echo "ERROR: missing required environment variable(s): ${missing[*]}" >&2
exit 1
fi
run_at="${RUN_AT}"
if ! [[ "${run_at}" =~ ^([01][0-9]|2[0-3]):[0-5][0-9]$ ]]; then
echo "ERROR: RUN_AT='${run_at}' must be in HH:MM (24-hour) format" >&2
exit 1
fi
hour="${run_at%%:*}"
minute="${run_at##*:}"
tmp_cron="$(mktemp)"
trap 'rm -f "${tmp_cron}"' EXIT
{
echo "SHELL=/bin/bash"
echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
echo "TZ=${TZ}"
echo "${minute} ${hour} * * * cd /app && /usr/local/bin/python -m tenbackward >> /app/data/cron.log 2>&1"
} > "${tmp_cron}"
install -m 0644 -o root -g root "${tmp_cron}" /etc/cron.d/tenbackward
/app/crontab/install-cron.sh /etc/cron.d/tenbackward
echo "tenbackward: starting cron (RUN_AT=${run_at}, TZ=${TZ})"
exec cron -f