gioser

fix(scripts): install-arje no esconde el build — chequeo previo + salida visible

El `>/dev/null` del paso 1 ocultaba lo que pasaba: si faltaba un
prerrequisito o el build moría, sólo se veía «paso 1/5» y el script
salía silencioso. Cambios:

- Paso 0 nuevo: chequeo de cargo / musl-gcc / busybox / cpio / gzip /
  rust target con mensajes accionables por distro (Fedora + Debian).
- El build de cargo deja fluir su salida a la terminal — incluida la
  espera de 10-20 min la primera vez, así no parece un cuelgue.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

8787b0566a7c04e1cc15107039eaeedfad193879 · by sergio · (5 months ago) · parent 8fc1d99dd · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +24 −1

diff --git a/scripts/install-arje-as-init.sh b/scripts/install-arje-as-init.sh
index fbe0ba7..25314a0 100755
--- a/scripts/install-arje-as-init.sh
+++ b/scripts/install-arje-as-init.sh
@@ -59,8 +59,31 @@ if [ ! -e /sbin/init ] && [ ! -e /lib/systemd/systemd ] && [ ! -e /usr/lib/syste
   [ "$ans" = "y" ] || exit 3
 fi
 
+# Chequeo de prerrequisitos antes de arrancar la compilación, así un
+# fallo da un mensaje accionable en vez de irse silencioso a /dev/null.
+echo "[install-arje] paso 0/5: chequeo de prerrequisitos"
+missing=()
+command -v cargo    >/dev/null 2>&1 || missing+=("cargo (rustup: curl https://sh.rustup.rs -sSf | sh)")
+command -v musl-gcc >/dev/null 2>&1 || missing+=("musl-gcc  (Fedora: dnf install musl-gcc musl-libc-static  ·  Debian: apt install musl-tools)")
+command -v busybox  >/dev/null 2>&1 || missing+=("busybox-static  (Fedora: dnf install busybox  ·  Debian: apt install busybox-static)")
+command -v cpio     >/dev/null 2>&1 || missing+=("cpio")
+command -v gzip     >/dev/null 2>&1 || missing+=("gzip")
+if [ "${#missing[@]}" -gt 0 ]; then
+  echo "[install-arje] faltan prerrequisitos:" >&2
+  printf "  - %s\n" "${missing[@]}" >&2
+  exit 6
+fi
+SYSROOT="$(rustc --print sysroot 2>/dev/null || true)"
+if [ -z "$SYSROOT" ] || [ ! -d "$SYSROOT/lib/rustlib/$TARGET" ]; then
+  echo "[install-arje] falta el target Rust '$TARGET' (sysroot=$SYSROOT)" >&2
+  echo "  Instalalo con:  rustup target add $TARGET" >&2
+  exit 7
+fi
+
 echo "[install-arje] paso 1/5: compilar binarios musl-static"
-"$SCRIPT_DIR/build-arje-initrd.sh" "$SEED" /tmp/arje-noop.cpio.gz >/dev/null
+echo "  (la PRIMERA vez tarda 10-20 minutos en una VPS de 4 GB; la salida"
+echo "   de cargo va a fluir directo a esta terminal — no es un cuelgue)"
+"$SCRIPT_DIR/build-arje-initrd.sh" "$SEED" /tmp/arje-noop.cpio.gz
 rm -f /tmp/arje-noop.cpio.gz
 BIN_DIR="$REPO_DIR/target/$TARGET/release"
 EX_DIR="$BIN_DIR/examples"