Add curl-based Frame Home installer

Add a Steam Frame bootstrap that downloads and validates the selected release installer,
then runs the existing payload installer. Document latest and versioned install commands.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
KevinandCopilot committed 2026-10-24 18:54:18 +02:00
1 parent 8e3bb2e1ea
commit ce49cecd6a
2 files changed
+63 -7

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ "$(uname -m)" != aarch64 ]]; then
echo "Frame Home must be installed on the Steam Frame (ARM64)." >&2
exit 1
fi
for tool in curl unzip; do
command -v "$tool" >/dev/null 2>&1 || {
echo "Missing required command: $tool" >&2
exit 1
}
done
tag=${FRAME_HOME_TAG:-latest}
if [[ -z "$tag" || "$tag" == *[^a-zA-Z0-9._-]* ]]; then
echo "Invalid release tag: $tag" >&2
exit 1
fi
url="https://github.com/Toastconcern/FrameStudio/releases/download/$tag/FrameHome-installer.zip"
tmp=$(mktemp -d "${TMPDIR:-/tmp}/frame-home-install.XXXXXXXX")
trap 'rm -rf "$tmp"' EXIT
archive="$tmp/FrameHome-installer.zip"
echo "Downloading Frame Home release $tag..."
curl --fail --location --silent --show-error --retry 2 --output "$archive" "$url"
unzip -tq "$archive"
unzip -q "$archive" -d "$tmp"
installer="$tmp/FrameHome-installer/payload"
if [[ ! -f "$installer/install.sh" || ! -x "$installer/bin/frame-home" ]]; then
echo "The downloaded release does not contain a valid Frame Home installer." >&2
exit 1
fi
sh "$installer/install.sh" "$@"