Files
FrameAssistant/scripts/deploy-to-frame.sh
T
matzmanandClaude Opus 5.5 4a5b09053e Initial FrameAssistant baseline from the vrdashboard template
Template stripped to the overlay platform (examples, demo UI and Frame
test package removed), renamed to FrameAssistant, and working rules for
the project recorded in CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:06:58 +02:00

24 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copies a release package to the Steam Frame over SSH and installs it there (registers
# it with SteamVR and starts it; an existing installation in the same place is updated).
# SteamVR must be running on the Frame.
#
# scripts/deploy-to-frame.sh <ssh-target> [package-dir] [remote-dir]
# e.g. scripts/deploy-to-frame.sh steamos@frame
#
# package-dir defaults to the newest dist/*-linux-arm64 package (scripts/package-release.sh);
# remote-dir defaults to the package's base name in the remote home directory.
set -euo pipefail
target="${1:?usage: $0 <ssh-target> [package-dir] [remote-dir]}"
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
package="${2:-$(ls -dt "$root"/dist/*-linux-arm64 "$root"/dist/*-linux-arm64-bundled 2>/dev/null | head -1)}"
[[ -n "$package" && -x "$package/install.sh" ]] || {
echo "No release package found (run scripts/package-release.sh first)" >&2; exit 1; }
# Without the version: updates go to the same place and replace the old version.
remote="${3:-$(basename "$package" | sed -E 's/-[0-9][0-9.]*-linux-arm64(-bundled)?$//')}"
rsync -a --delete --exclude logs/ "$package/" "$target:$remote/"
ssh "$target" "\$HOME/$remote/install.sh"
echo "Installed $(basename "$package") to $target:~/$remote"