Files
jellyfin-client/remote-build.sh
T
2026-11-04 19:41:25 +01:00

61 lines
1.6 KiB
Bash
Executable File

#!/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/"
cp "${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