32 lines
751 B
Bash
Executable File
32 lines
751 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PYTHON_BIN="$(command -v python3 || true)"
|
|
|
|
if [[ -z "${PYTHON_BIN}" ]]; then
|
|
echo "Error: python3 not found in PATH."
|
|
exit 1
|
|
fi
|
|
|
|
LOG_FILE="${PROJECT_DIR}/weekly_main.log"
|
|
CRON_CMD="cd ${PROJECT_DIR} && ${PYTHON_BIN} ${PROJECT_DIR}/main.py >> ${LOG_FILE} 2>&1"
|
|
CRON_JOB="0 0 * * 1 ${CRON_CMD}"
|
|
|
|
CURRENT_CRON="$(crontab -l 2>/dev/null || true)"
|
|
|
|
if grep -Fq "${CRON_CMD}" <<< "${CURRENT_CRON}"; then
|
|
echo "Cron job already exists:"
|
|
echo "${CRON_JOB}"
|
|
exit 0
|
|
fi
|
|
|
|
{
|
|
[[ -n "${CURRENT_CRON}" ]] && echo "${CURRENT_CRON}"
|
|
echo "${CRON_JOB}"
|
|
} | crontab -
|
|
|
|
echo "Cron job installed successfully:"
|
|
echo "${CRON_JOB}"
|
|
echo "Log file: ${LOG_FILE}"
|