fix: install.sh shows build errors instead of failing silently
cargo build --quiet swallowed compiler errors, and the subshell (...) didn't reliably propagate exit codes across bash versions. The script continued past a failed build, then ls/cp failed on the missing binary. Now: removed --quiet so errors are visible, explicit exit-code check with common-cause hints (build-essential, libc6-dev), and a secondary check that the binary actually exists before attempting to install it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
20
install.sh
20
install.sh
@@ -31,12 +31,26 @@ echo "[ok] jq found"
|
|||||||
# ── Build release binary ─────────────────────────────────────────────
|
# ── Build release binary ─────────────────────────────────────────────
|
||||||
echo ""
|
echo ""
|
||||||
echo "Building release binary..."
|
echo "Building release binary..."
|
||||||
(cd "$SCRIPT_DIR" && cargo build --release --quiet)
|
if ! (cd "$SCRIPT_DIR" && cargo build --release); then
|
||||||
echo "[ok] Built: $(ls -lh "$SCRIPT_DIR/target/release/$BINARY_NAME" | awk '{print $5}')"
|
echo ""
|
||||||
|
echo "ERROR: cargo build failed. Check the output above for details."
|
||||||
|
echo " Common causes:"
|
||||||
|
echo " - Missing C compiler: sudo apt install build-essential (Debian/Ubuntu)"
|
||||||
|
echo " - Missing libc headers: sudo apt install libc6-dev"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
BINARY="$SCRIPT_DIR/target/release/$BINARY_NAME"
|
||||||
|
if [[ ! -f "$BINARY" ]]; then
|
||||||
|
echo "ERROR: Build succeeded but binary not found at $BINARY"
|
||||||
|
echo " Check: ls $SCRIPT_DIR/target/release/"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "[ok] Built: $(ls -lh "$BINARY" | awk '{print $5}')"
|
||||||
|
|
||||||
# ── Install binary ───────────────────────────────────────────────────
|
# ── Install binary ───────────────────────────────────────────────────
|
||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
cp "$SCRIPT_DIR/target/release/$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
|
cp "$BINARY" "$INSTALL_DIR/$BINARY_NAME"
|
||||||
chmod +x "$INSTALL_DIR/$BINARY_NAME"
|
chmod +x "$INSTALL_DIR/$BINARY_NAME"
|
||||||
echo "[ok] Installed to $INSTALL_DIR/$BINARY_NAME"
|
echo "[ok] Installed to $INSTALL_DIR/$BINARY_NAME"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user