feat: add catch-up systemd timer and runner script for main.py
Co-authored-by: aider (openai/gpt-5) <aider@aider.chat>
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Change to the repository root (one level up from this script's directory)
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
# Prefer uv if available (uses pyproject.toml/uv.lock), otherwise fall back to system Python.
|
||||||
|
if command -v uv >/dev/null 2>&1; then
|
||||||
|
uv run python -u main.py
|
||||||
|
else
|
||||||
|
python3 -u main.py
|
||||||
|
fi
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# User-level systemd service to run main.py
|
||||||
|
# Uses a wrapper script so the working directory and .env are found correctly.
|
||||||
|
# Replace REPO_PATH automatically using the setup command we provide.
|
||||||
|
[Unit]
|
||||||
|
Description=Run main.py (LibGuides notifier)
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart="REPO_PATH/scripts/run_main.sh"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# User-level systemd timer that "catches up" missed runs if the machine was off.
|
||||||
|
[Unit]
|
||||||
|
Description=Schedule main.py with catch-up if missed
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Change this to your desired schedule; examples:
|
||||||
|
# OnCalendar=daily
|
||||||
|
# OnCalendar=Mon..Fri 09:00
|
||||||
|
# See man systemd.time for syntax.
|
||||||
|
OnCalendar=hourly
|
||||||
|
Persistent=true
|
||||||
|
AccuracySec=1m
|
||||||
|
RandomizedDelaySec=5m
|
||||||
|
Unit=libguides-notifier.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
Reference in New Issue
Block a user