Files
Halcyon/scripts/daily.sh
T
2026-09-19 20:21:47 +02:00

26 lines
903 B
Bash
Executable File

#!/usr/bin/env bash
# Run one simulated day inside the running container.
#
# scripts/daily.sh [daily flags...]
#
# Schedule it once a day, e.g. in crontab:
# 0 6 * * * /path/to/scripts/daily.sh >> /var/log/halcyon-daily.log 2>&1
#
# Environment:
# HALCYON_CONTAINER container name (default: halcyon, as in docker-compose.yml)
#
# The world settings (WH_SEED, WH_ASTEROIDS, ...) come from the container's
# environment, so the daily run always matches the server.
set -euo pipefail
container="${HALCYON_CONTAINER:-halcyon}"
if ! docker inspect -f '{{.State.Running}}' "$container" 2>/dev/null | grep -qx true; then
echo "error: container '$container' is not running (try: docker compose up -d)" >&2
exit 1
fi
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) running daily job in $container"
# No -t: this must work from cron, where there is no terminal.
exec docker exec "$container" daily "$@"