#!/usr/bin/env bash set -eo pipefail REMOTE_HOST="${REMOTE_HOST:-bart-workstation.lan}" REMOTE_DIR="${REMOTE_DIR:-~/builds/jellyfin-client}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CLIENT_DIR="${SCRIPT_DIR}" KIOSK_DIR="${SCRIPT_DIR}/jellyfin-kiosk-rs" COMMAND="${1:-release}" shift || true case "${COMMAND}" in check) CARGO_CMD="cargo check $*" FETCH_BIN=false ;; build) CARGO_CMD="cargo build $*" FETCH_BIN=false ;; release) CARGO_CMD="cargo build --release $*" FETCH_BIN=true ;; test) CARGO_CMD="cargo test $*" FETCH_BIN=false ;; cargo) CARGO_CMD="cargo $*" FETCH_BIN=false ;; *) CARGO_CMD="cargo ${COMMAND} $*" FETCH_BIN=false ;; esac echo "==> 📡 Syncing source code to ${REMOTE_HOST}:${REMOTE_DIR}..." rsync -az --delete \ --exclude 'target' \ --exclude '.git' \ --exclude '.venv' \ --exclude '__pycache__' \ --exclude '.pytest_cache' \ "${CLIENT_DIR}/" "${REMOTE_HOST}:${REMOTE_DIR}/" echo "==> 🚀 Running on ${REMOTE_HOST}: ${CARGO_CMD}..." ssh -t "${REMOTE_HOST}" "cd ${REMOTE_DIR}/jellyfin-kiosk-rs && ${CARGO_CMD}" if [ "${FETCH_BIN}" = true ]; then echo "==> 📥 Downloading compiled release binary to laptop..." mkdir -p "${KIOSK_DIR}/target/release" rsync -avz "${REMOTE_HOST}:${REMOTE_DIR}/jellyfin-kiosk-rs/target/release/jellyfin-kiosk-rs" "${KIOSK_DIR}/target/release/" install -m 755 "${KIOSK_DIR}/target/release/jellyfin-kiosk-rs" "${KIOSK_DIR}/jellyfin-kiosk" echo "==> ✅ Klaar! Binary beschikbaar in:" echo " - ${KIOSK_DIR}/target/release/jellyfin-kiosk-rs" echo " - ${KIOSK_DIR}/jellyfin-kiosk" fi