#!/usr/bin/env bash # Install teleportfling as a per-user systemd service (daemon mode). # # Builds the headless binary, places it in ~/.local/bin, installs the user # unit from contrib/teleportfling.service, and creates a starter daemon # config. Run without sudo: # # ./contrib/install-daemon.sh # # Then start it with: # # systemctl --user enable --now teleportfling set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BIN_DIR="${HOME}/.local/bin" SERVICE_DIR="${HOME}/.config/systemd/user" CONFIG_DIR="${HOME}/.config/teleportfling" CONFIG="${CONFIG_DIR}/daemon.json" echo "Building teleportfling..." (cd "${HERE}" && go build -o "${BIN_DIR}/teleportfling" ./cmd/teleportfling) echo "Installing systemd user unit..." mkdir -p "${SERVICE_DIR}" install -m 0644 "${HERE}/contrib/teleportfling.service" "${SERVICE_DIR}/teleportfling.service" if [[ ! -f "${CONFIG}" ]]; then echo "Creating default daemon config at ${CONFIG}..." mkdir -p "${CONFIG_DIR}" cat > "${CONFIG}" <<'EOF' { "name": "TeleportFling Daemon", "port": 9756, "quality": 80, "fps": 30, "source": "screen", "audio": true, "stream_index": 0, "announce": true } EOF fi echo "Reloading systemd and enabling the service..." systemctl --user daemon-reload systemctl --user enable teleportfling cat <