33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# dormant-sweep.sh — cron entrypoint on mammut.
|
|
#
|
|
# Pipes dormant_sweep.rb into the Mastodon web container's `rails runner`,
|
|
# passing config from an env file. Selection AND actions run inside Rails as the
|
|
# `bot` account, so NO API token or secret is needed on the host.
|
|
#
|
|
# Install (on mammut): /root/dormant-sweep/{dormant-sweep.sh,dormant_sweep.rb,dormant-sweep.env}
|
|
# Cron (mammut root): 30 4 * * 0 /root/dormant-sweep/dormant-sweep.sh >> /var/log/dormant-sweep.log 2>&1
|
|
set -eu
|
|
|
|
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
ENV_FILE="${DORMANT_ENV_FILE:-$HERE/dormant-sweep.env}"
|
|
|
|
# Load KEY=VALUE config and export it so the loop below can forward it.
|
|
if [ -f "$ENV_FILE" ]; then
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
fi
|
|
|
|
CID="$(docker ps -f name=live-web-1 -q | head -n1)"
|
|
[ -n "$CID" ] || { echo "dormant-sweep: live-web-1 container not found" >&2; exit 1; }
|
|
|
|
# Forward only DORMANT_* vars into the container.
|
|
DOCKER_ENV=""
|
|
for v in $(env | sed -n 's/^\(DORMANT_[A-Z_]*\)=.*/\1/p'); do
|
|
DOCKER_ENV="$DOCKER_ENV -e $v"
|
|
done
|
|
|
|
# shellcheck disable=SC2086
|
|
docker exec -i $DOCKER_ENV "$CID" bin/rails runner - < "$HERE/dormant_sweep.rb"
|