#!/usr/bin/env bash ## # installs systemd files to keep NOSE running on your NOSEputer set -euo pipefail SERVICE_NAME="nose-pluto" SERVICE_FILE="$(dirname "$0")/${SERVICE_NAME}.service" SYSTEMD_PATH="/etc/systemd/system/${SERVICE_NAME}.service" BUN_BIN="/usr/local/bin/bun" echo ">> Ensuring bun is available in /usr/local/bin" if [ ! -x "$BUN_BIN" ]; then if [ -x "$HOME/.bun/bin/bun" ]; then sudo ln -sf "$HOME/.bun/bin/bun" "$BUN_BIN" echo "Symlinked $HOME/.bun/bin/bun -> $BUN_BIN" else echo "Error: bun not found in ~/.bun/bin" exit 1 fi else echo "bun already available at $BUN_BIN" fi echo ">> Setting CAP_NET_BIND_SERVICE on $BUN_BIN" sudo setcap 'cap_net_bind_service=+ep' "$BUN_BIN" getcap "$BUN_BIN" || true echo ">> Installing systemd unit to $SYSTEMD_PATH" sudo cp "$SERVICE_FILE" "$SYSTEMD_PATH" sudo chown root:root "$SYSTEMD_PATH" sudo chmod 644 "$SYSTEMD_PATH" echo ">> Reloading systemd daemon" sudo systemctl daemon-reload echo ">> Enabling $SERVICE_NAME to start at boot" sudo systemctl enable "$SERVICE_NAME" echo ">> Starting (or restarting) $SERVICE_NAME" sudo systemctl restart "$SERVICE_NAME" echo ">> Done!" systemctl status "$SERVICE_NAME" --no-pager -l