Files
sethLabels/scripts/lib/linuxdeploy.sh
T
Seth 4a0185df53 feat: add linuxdeploy.sh bootstrap (pinned per F9)
Bootstraps linuxdeploy (1-alpha-20251107-1) and linuxdeploy-plugin-qt
(1-alpha-20250213-1) to scripts/.cache/ on first run. Dual-mode:
sourceable (exports $LINUXDEPLOY_BIN / $LINUXDEPLOY_PLUGIN_QT_BIN) or
executable (prints paths). Pinned dated snapshots per spec §F9 — no
rolling continuous tag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:34:01 -04:00

51 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Bootstrap linuxdeploy + linuxdeploy-plugin-qt to a script-local cache.
#
# When SOURCED: exposes $LINUXDEPLOY_BIN and $LINUXDEPLOY_PLUGIN_QT_BIN paths
# (downloads on first run if missing).
# When EXECUTED: ensures both binaries are present and prints their paths.
#
# Pinned per spec §F9 — version bumps are deliberate, not transparent.
# To bump: re-run discovery (Task 5 Step 1 of the implementation plan), update
# the two TAG variables below, and verify a fresh AppImage build.
#
# Spec: sethlabels-docs/specs/2026-04-29-packaging-design.md §F9
set -euo pipefail
# === PINNED VERSIONS (update deliberately per F9) ===
LINUXDEPLOY_TAG="1-alpha-20251107-1"
LINUXDEPLOY_PLUGIN_QT_TAG="1-alpha-20250213-1"
# ====================================================
CACHE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/.cache"
LINUXDEPLOY_BIN="$CACHE_DIR/linuxdeploy-${LINUXDEPLOY_TAG}-x86_64.AppImage"
LINUXDEPLOY_PLUGIN_QT_BIN="$CACHE_DIR/linuxdeploy-plugin-qt-${LINUXDEPLOY_PLUGIN_QT_TAG}-x86_64.AppImage"
LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/${LINUXDEPLOY_TAG}/linuxdeploy-x86_64.AppImage"
LINUXDEPLOY_PLUGIN_QT_URL="https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/${LINUXDEPLOY_PLUGIN_QT_TAG}/linuxdeploy-plugin-qt-x86_64.AppImage"
ensure_tool() {
local url="$1" out="$2" label="$3"
if [ -x "$out" ]; then
return 0
fi
mkdir -p "$(dirname "$out")"
echo "Downloading $label from $url ..." >&2
if ! wget -q --show-progress -O "$out" "$url"; then
echo "ERROR: download failed for $label ($url)" >&2
rm -f "$out"
return 1
fi
chmod +x "$out"
}
ensure_tool "$LINUXDEPLOY_URL" "$LINUXDEPLOY_BIN" "linuxdeploy"
ensure_tool "$LINUXDEPLOY_PLUGIN_QT_URL" "$LINUXDEPLOY_PLUGIN_QT_BIN" "linuxdeploy-plugin-qt"
export LINUXDEPLOY_BIN LINUXDEPLOY_PLUGIN_QT_BIN
if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
echo "linuxdeploy: $LINUXDEPLOY_BIN"
echo "linuxdeploy-plugin-qt: $LINUXDEPLOY_PLUGIN_QT_BIN"
fi