32 lines
701 B
Bash
Executable File
32 lines
701 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT="${AW_1C_ROOT:-/opt/activitywatch/clickhouse-1c}"
|
|
ENV_FILE="${ROOT}/.env"
|
|
VENV="${ROOT}/.venv"
|
|
LOCK_FILE="${ROOT}/.weekly-digest.lock"
|
|
LOCK_WAIT_SEC="${AW_1C_WEEKLY_DIGEST_LOCK_WAIT_SEC:-1800}"
|
|
|
|
if [[ ! -f "${ENV_FILE}" ]]; then
|
|
echo "missing env file: ${ENV_FILE}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -x "${VENV}/bin/python" ]]; then
|
|
echo "missing venv python: ${VENV}/bin/python" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# shellcheck disable=SC1090
|
|
set -a
|
|
. "${ENV_FILE}"
|
|
set +a
|
|
|
|
exec 9>"${LOCK_FILE}"
|
|
if ! flock -w "${LOCK_WAIT_SEC}" 9; then
|
|
echo "weekly digest lock wait exceeded: ${LOCK_WAIT_SEC}s" >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec "${VENV}/bin/python" "${ROOT}/ai/generate_weekly_digest.py"
|