Files
website/scripts/movies-run.sh

30 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Run a movies tracker script on stan-ovh against prod, without printing secrets.
# scripts/movies-run.sh import --netflix ~/imports/ViewingActivity.csv [--dry-run] …
# scripts/movies-run.sh recs ~/imports/ju-recs.json [--prune]
# scripts/movies-run.sh tmdb [--retry-not-found]
# DB_URL (app role) comes from the running app container (db:5432 → 127.0.0.1:5440).
# TMDB_API_KEY comes from ~/.config/movies/tmdb.env (mode 600, one line TMDB_API_KEY=…), if present.
# Runs from this checkout; use a checkout of main (e.g. ~/dev/personal-website after a pull).
set -euo pipefail
cd "$(dirname "$0")/.."
cmd=${1:?usage: movies-run.sh import|recs|tmdb [args]}
shift
case "$cmd" in
import) script=scripts/movies-import.ts ;;
recs) script=scripts/movies-recs-import.ts ;;
tmdb) script=scripts/movies-tmdb.ts ;;
*) echo "unknown command $cmd (import, recs or tmdb)" >&2; exit 2 ;;
esac
DB_URL=$(sudo -n docker inspect personal-website-app-1 --format '{{range .Config.Env}}{{println .}}{{end}}' \
| sed -n 's/^DB_URL=//p' | sed 's/@db:5432/@127.0.0.1:5440/')
[ -n "$DB_URL" ] || { echo "no DB_URL from the app container" >&2; exit 1; }
export DB_URL
env_file="${MOVIES_ENV_FILE:-$HOME/.config/movies/tmdb.env}"
if [ -r "$env_file" ]; then
set -a
. "$env_file"
set +a
fi
exec bun "$script" "$@"