cat / goq
clone

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

fix/hero-release-note
goq / scripts / install-linux-build-deps.sh
install-linux-build-deps.sh 1.6K executable
1#!/usr/bin/env bash2set -euo pipefail34# Install the Linux build and runtime dependencies the complete demo gate needs.5#6# CI runs the gate as several parallel jobs, and every job that compiles Sigil7# or Portal needs the same package set. Keeping the list here rather than8# duplicated per job means a dependency can only be added or removed in one9# reviewable place, and ShellCheck covers it like every other repository script.10#11# --profile full Everything the Rust workspace, GStreamer gate, and12# loopback proofs need (default).13# --profile lint Only what format, syntax, and ShellCheck passes need.1415profile=full1617while [[ $# -gt 0 ]]; do18 case "$1" in19 --profile)20 [[ $# -ge 2 ]] || {21 printf -- '--profile requires a value\n' >&222 exit 223 }24 profile="$2"25 shift 226 ;;27 *)28 printf 'unknown argument: %s\n' "$1" >&229 exit 230 ;;31 esac32done3334lint_packages=(35 shellcheck36)3738full_packages=(39 build-essential40 file41 ffmpeg42 gstreamer1.0-plugins-base43 gstreamer1.0-plugins-bad44 gstreamer1.0-plugins-good45 gstreamer1.0-plugins-ugly46 gstreamer1.0-tools47 libayatana-appindicator3-dev48 libgstreamer-plugins-base1.0-dev49 libgstreamer1.0-dev50 librsvg2-dev51 libssl-dev52 libudev-dev53 libwebkit2gtk-4.1-dev54 libxdo-dev55 pkg-config56 python3-venv57 shellcheck58)5960case "$profile" in61 full) packages=("${full_packages[@]}") ;;62 lint) packages=("${lint_packages[@]}") ;;63 *)64 printf -- '--profile must be full or lint\n' >&265 exit 266 ;;67esac6869sudo apt-get update70sudo apt-get install --yes --no-install-recommends "${packages[@]}"71printf 'linux_build_deps=%s\n' "$profile"