cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

fix/portal-dist-prebuild
goq / scripts / tests / compatibility-identifiers.sh
compatibility-identifiers.sh 3.5K executable
1#!/usr/bin/env bash23set -euo pipefail45script_dir="$(CDPATH='' cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"6repo_dir="$(CDPATH='' cd -- "$script_dir/../.." && pwd -P)"78require_exact_line() {9 local relative_path="$1"10 local expected="$2"11 if ! grep -Fqx -- "$expected" "$repo_dir/$relative_path"; then12 printf 'compatibility identifier drifted in %s: %s\n' \13 "$relative_path" "$expected" >&214 exit 115 fi16}1718# Portal enrollment identity. These source assertions complement the Rust19# derivation vector by preventing a second call-site literal from drifting.20require_exact_line src-tauri/src/commands/auth.rs \21 'const FIDO_RP_ID: &str = "sigil";'22require_exact_line src-tauri/src/commands/auth.rs \23 'const FIDO_HMAC_SALT_MESSAGE: &str = "sigil-iroh-identity-v1";'24require_exact_line src-tauri/src/commands/auth.rs \25 'const FIDO_RESIDENT_USER_ID: &[u8] = b"sigil-user";'26require_exact_line src-tauri/src/commands/auth.rs \27 'const PORTAL_CLIENT_IDENTITY_DOMAIN: &[u8] = b"goq/portal-client-identity/v1\0";'2829# Canonical host install, configuration, persistent data, and volatile runtime30# namespaces. Decky and the installed service are independent consumers.31require_exact_line crates/sigil-host/src/appliance.rs \32 'const RUNTIME_DIRECTORY_COMPONENT: &str = "sigil-spark";'33require_exact_line decky/py_modules/goq_sigil/runner.py \34 ' self.sigil = self.home / ".local/libexec/sigil-spark/current/sigil"'35require_exact_line decky/py_modules/goq_sigil/runner.py \36 ' self.config = self.home / ".config/sigil-spark/host.toml"'37require_exact_line scripts/install-bazzite-package.sh \38 "install_root=\"\$HOME/.local/libexec/sigil-spark\""39require_exact_line scripts/sigil-host.service \40 'ConditionPathExists=%h/.config/sigil-spark/host.toml'41require_exact_line scripts/sigil-host.service \42 'ExecStart=%h/.local/libexec/sigil-spark/current/sigil-host serve --config %h/.config/sigil-spark/host.toml'43require_exact_line docs/sigil-host-activation.md \44 "identity=\"\$HOME/.local/share/sigil-spark/identity/host.key\""45require_exact_line docs/sigil-host-activation.md \46 "state_path = \"\$HOME/.local/state/sigil-spark/runtime\""47require_exact_line scripts/stage-bazzite-release.sh \48 " \"\$HOME/.local/share/sigil-spark/package-assets/70-sigil-remote-input.rules\""4950# Linux virtual-input producer and the packaged udev consumer must remain51# byte-for-byte synchronized around the names that udev matches.52require_exact_line crates/sigil-host/src/input/mod.rs \53 'const UINPUT_BUS_TYPE: u16 = 0x06; // Linux BUS_VIRTUAL'54require_exact_line crates/sigil-host/src/input/mod.rs \55 'const UINPUT_VENDOR_ID: u16 = 0x5347;'56require_exact_line crates/sigil-host/src/input/mod.rs \57 'const UINPUT_DEVICE_VERSION: u16 = 1;'58require_exact_line crates/sigil-host/src/input/mod.rs \59 'const POINTER_DEVICE_NAME: &[u8] = b"Sigil Spark Virtual Pointer";'60require_exact_line crates/sigil-host/src/input/mod.rs \61 'const KEYBOARD_DEVICE_NAME: &[u8] = b"Sigil Spark Virtual Keyboard";'62require_exact_line crates/sigil-host/src/input/mod.rs \63 'const GAMEPAD_DEVICE_NAME: &[u8] = b"Sigil Spark Virtual Gamepad";'64require_exact_line scripts/70-sigil-remote-input.rules \65 'ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Sigil Spark Virtual Pointer", GROUP="sigil-uinput", MODE="0660", TAG+="uaccess"'66require_exact_line scripts/70-sigil-remote-input.rules \67 'ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Sigil Spark Virtual Keyboard", GROUP="sigil-uinput", MODE="0660", TAG+="uaccess"'6869printf 'compatibility_identifier_tests=ok\n'