vm-manager/scripts/install-forger.sh

47 lines
1.5 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
set -euo pipefail
# Extract forger source, build, and install the binary.
# ---------------------------------------------------------------------------
# Cargo environment
# ---------------------------------------------------------------------------
if [ -f "$HOME/.cargo/env" ]; then
# shellcheck disable=SC1091
source "$HOME/.cargo/env"
fi
export PATH="$HOME/.cargo/bin:$PATH"
ARCHIVE="/tmp/forger-src.tar.gz"
DEST="$HOME/forger"
if [ ! -f "$ARCHIVE" ]; then
echo "[install-forger] Archive not found: $ARCHIVE" >&2
exit 1
fi
# ---------------------------------------------------------------------------
# Extract
# ---------------------------------------------------------------------------
echo "[install-forger] Extracting $ARCHIVE -> $DEST ..."
rm -rf "$DEST"
mkdir -p "$DEST"
tar xzf "$ARCHIVE" -C "$DEST"
# ---------------------------------------------------------------------------
# Build
# ---------------------------------------------------------------------------
echo "[install-forger] Building forger (release) ..."
cd "$DEST"
cargo build -p forger --release
# ---------------------------------------------------------------------------
# Install
# ---------------------------------------------------------------------------
echo "[install-forger] Installing /usr/local/bin/forger ..."
sudo install -m 755 -d /usr/local/bin
sudo install -m 755 "$DEST/target/release/forger" /usr/local/bin/forger
echo "[install-forger] Done."
/usr/local/bin/forger --version || true