From bc57172d923e67841cdc4386c952120d0bf3620f Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Thu, 26 Mar 2026 07:56:55 +0100 Subject: [PATCH] fix(nix): fail fast when bootstrap is unavailable --- packaging/arch/package-manager.install | 4 ++-- packaging/debian/postinst | 2 +- packaging/fedora/package-manager.spec | 2 +- scripts/launcher.sh | 12 +++++++----- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packaging/arch/package-manager.install b/packaging/arch/package-manager.install index 65f858b..e003b1b 100644 --- a/packaging/arch/package-manager.install +++ b/packaging/arch/package-manager.install @@ -1,9 +1,9 @@ post_install() { - /usr/lib/package-manager/nix/init.sh || echo ">>> ERROR: /usr/lib/package-manager/nix/init.sh not found or not executable." + /usr/lib/package-manager/nix/init.sh } post_upgrade() { - /usr/lib/package-manager/nix/init.sh || echo ">>> ERROR: /usr/lib/package-manager/nix/init.sh not found or not executable." + /usr/lib/package-manager/nix/init.sh } post_remove() { diff --git a/packaging/debian/postinst b/packaging/debian/postinst index 3f416b3..142963f 100755 --- a/packaging/debian/postinst +++ b/packaging/debian/postinst @@ -3,7 +3,7 @@ set -e case "$1" in configure) - /usr/lib/package-manager/nix/init.sh || echo ">>> ERROR: /usr/lib/package-manager/nix/init.sh not found or not executable." + /usr/lib/package-manager/nix/init.sh ;; esac diff --git a/packaging/fedora/package-manager.spec b/packaging/fedora/package-manager.spec index 3570f0a..5d2251b 100644 --- a/packaging/fedora/package-manager.spec +++ b/packaging/fedora/package-manager.spec @@ -62,7 +62,7 @@ rm -rf \ %{buildroot}/usr/lib/package-manager/.gitkeep || true %post -/usr/lib/package-manager/nix/init.sh || echo ">>> ERROR: /usr/lib/package-manager/nix/init.sh not found or not executable." +/usr/lib/package-manager/nix/init.sh %postun echo ">>> package-manager removed. Nix itself was not removed." diff --git a/scripts/launcher.sh b/scripts/launcher.sh index 7a1ba70..95b2080 100755 --- a/scripts/launcher.sh +++ b/scripts/launcher.sh @@ -37,10 +37,16 @@ fi # --------------------------------------------------------------------------- if ! command -v nix >/dev/null 2>&1; then if [[ -x "${FLAKE_DIR}/nix/init.sh" ]]; then - "${FLAKE_DIR}/nix/init.sh" || true + "${FLAKE_DIR}/nix/init.sh" fi fi +if ! command -v nix >/dev/null 2>&1; then + echo "[launcher] ERROR: 'nix' binary not found on PATH after init." >&2 + echo "[launcher] Nix is required to run pkgmgr (no Python fallback)." >&2 + exit 1 +fi + # --------------------------------------------------------------------------- # Primary path: use Nix flake if available (with GitHub 403 retry) # --------------------------------------------------------------------------- @@ -51,7 +57,3 @@ if declare -F run_with_github_403_retry >/dev/null; then else exec nix run "${FLAKE_DIR}#pkgmgr" -- "$@" fi - -echo "[launcher] ERROR: 'nix' binary not found on PATH after init." -echo "[launcher] Nix is required to run pkgmgr (no Python fallback)." -exit 1