camera-trng/scripts/install-launchagent.sh

23 lines
840 B
Bash
Executable File

#!/usr/bin/env bash
# Install camera-qrng as a macOS LaunchAgent so it starts at login and stays running.
# Usage: ./scripts/install-launchagent.sh
set -e
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
BINARY="${ROOT}/target/release/camera-qrng"
PLIST_SRC="${ROOT}/scripts/camera-qrng.plist.in"
PLIST_DEST="${HOME}/Library/LaunchAgents/camera-trng.plist"
echo "Building release binary..."
(cd "$ROOT" && cargo build --release)
mkdir -p "${ROOT}/logs"
sed -e "s|BINARY_PATH|${BINARY}|g" -e "s|WORKING_DIR|${ROOT}|g" "$PLIST_SRC" > "$PLIST_DEST"
echo "Installed plist to ${PLIST_DEST}"
launchctl unload "$PLIST_DEST" 2>/dev/null || true
launchctl load "$PLIST_DEST"
echo "Loaded. camera-qrng will start at login and restart if it exits."
echo "Logs: ${ROOT}/logs/camera-qrng.out.log and .err.log"
echo "To stop: launchctl unload ${PLIST_DEST}"