vm-manager/scripts/install-forger.sh
Till Wegmueller eb78c24a8b
Add OmniOS builder VM definition and provisioning scripts
VMFile.kdl defines the omnios-builder VM with cloud-init, SSH config,
and a 3-stage provision pipeline (bootstrap packages + Rust, upload
forger source tarball, build and install forger). Makefile provides
convenience targets wrapping vmctl commands. pack-forger.sh creates a
minimal tarball of just the forger + spec-parser crates and image specs
from refraction-forger for upload to the VM.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:56:43 +01:00

46 lines
1.5 KiB
Bash
Executable file

#!/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