#!/usr/bin/env bash set -e # Default schedules import_sched="*/5 * * * *" report_sched="0 * * * *" analysis_sched="0 0 * * *" remove=false usage() { echo "Usage: $0 [--import CRON] [--reports CRON] [--analysis CRON] [--remove]" } while [ $# -gt 0 ]; do case "$1" in --import) import_sched="$2"; shift 2;; --reports) report_sched="$2"; shift 2;; --analysis) analysis_sched="$2"; shift 2;; --remove) remove=true; shift;; -h|--help) usage; exit 0;; *) usage; exit 1;; esac done repo_dir="$(cd "$(dirname "$0")" && pwd)" if [ "$remove" = true ]; then tmp=$(mktemp) sudo crontab -l 2>/dev/null | grep -v "# ngxstat import" | grep -v "# ngxstat reports" | grep -v "# ngxstat analysis" > "$tmp" || true sudo crontab "$tmp" rm -f "$tmp" echo "[INFO] Removed ngxstat cron entries" exit 0 fi cron_entries="${import_sched} cd ${repo_dir} && ./run-import.sh # ngxstat import\n${report_sched} cd ${repo_dir} && ./run-reports.sh # ngxstat reports\n${analysis_sched} cd ${repo_dir} && ./run-analysis.sh # ngxstat analysis" ( sudo crontab -l 2>/dev/null; echo -e "$cron_entries" ) | sudo crontab - echo "[INFO] Installed ngxstat cron entries"