46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
#!/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
|