#!/usr/bin/env bash # Installs the Schedule Task Manager agent as a systemd timer. # # Usage: # curl -fsSL https://schedule.example.lan/agent/linux/install.sh | \ # API_URL=https://schedule.example.lan API_TOKEN=stm_xxx bash # set -euo pipefail : "${API_URL:?Set API_URL to your Schedule Task Manager URL, e.g. https://schedule.example.lan}" : "${API_TOKEN:?Set API_TOKEN to the per-server token generated on the Servers page}" INSTALL_DIR="/usr/local/bin" CONFIG_DIR="/etc" SYSTEMD_DIR="/etc/systemd/system" INTERVAL_MINUTES="${INTERVAL_MINUTES:-15}" if [[ "$EUID" -ne 0 ]]; then echo "This installer must be run as root (it installs a systemd timer)." >&2 exit 1 fi for bin in curl jq systemctl; do if ! command -v "$bin" >/dev/null 2>&1; then echo "Required dependency '$bin' is not installed." >&2 exit 1 fi done echo "Installing Schedule Task Manager agent from $API_URL ..." curl -fsSL "$API_URL/agent/linux/report-tasks.sh" -o "$INSTALL_DIR/schedule-task-manager-agent.sh" chmod 755 "$INSTALL_DIR/schedule-task-manager-agent.sh" umask 077 cat > "$CONFIG_DIR/schedule-task-manager-agent.env" < "$SYSTEMD_DIR/schedule-task-manager-agent.service" < "$SYSTEMD_DIR/schedule-task-manager-agent.timer" <