mirror of
https://github.com/CloudNebulaProject/vm-manager.git
synced 2026-04-10 13:20:41 +00:00
47 lines
1.5 KiB
Bash
47 lines
1.5 KiB
Bash
|
|
#!/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."
|
||
|
|
forger --version || true
|