61 lines
1.6 KiB
Bash
Executable File
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
|