Files

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"