universelabSCI · CLI · BIO
ESEspañol

ghScaff

Installation

Last updated

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/UniverLab/ghscaff/main/scripts/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/UniverLab/ghscaff/main/scripts/install.ps1 | iex

No Rust toolchain required. The installer accepts environment variables:

# Pin a specific version
VERSION=0.1.0 curl -fsSL https://raw.githubusercontent.com/UniverLab/ghscaff/main/scripts/install.sh | sh

# Install to a custom directory
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/UniverLab/ghscaff/main/scripts/install.sh | sh

Via cargo

cargo install ghscaff

Available on crates.io.

From source

git clone https://github.com/UniverLab/ghscaff.git
cd ghscaff
cargo build --release
# Binary at target/release/ghscaff

GitHub Releases

Precompiled binaries for Linux x86_64, macOS x86_64/ARM64 and Windows x86_64 are published on the Releases page.

Self-update

Updating is always explicit — ghscaff never installs anything on its own:

ghscaff update            # asks "Update to 0.7.0? [y/N]" — default is NO
ghscaff update --yes      # skip the prompt
ghscaff update --check    # report only: exit 0 = up to date, 1 = update available, 2 = the check could not be completed
ghscaff update --dry-run  # same as --check: report only, never downloads or installs

On “yes”, ghscaff downloads the release asset for your platform, verifies it against the release’s SHA256SUMS.txt (skipped only when the release ships no checksum file) and atomically replaces the running binary. On success it prints ✓ updated to <version> — no restart needed, the running binary is replaced in place and the next invocation already runs the new one. Your ~/.ghscaff state — encrypted vault and boilerplate cache — is never touched.

Exit codes: ghscaff update (with or without --check) exits 2 when the release check cannot be completed — no network, DNS or TLS failure, HTTP ≥ 400, or an unparsable release-list response — and prints the cause on stderr; other failures (download, checksum, permissions) are ordinary errors (exit 1). --check exits 1 when an update is available, 0 when the binary is current. --dry-run behaves like --check: it reports and never downloads or installs.

If you installed ghscaff with cargo install, ghscaff update refuses to touch the binary and instead prints: installed with cargo — run: cargo install --force ghscaff

At startup ghscaff only prints a one-line notice when a newer release exists. Disable that notice with:

GHSCAFF_NO_UPDATE_CHECK=1 ghscaff

Uninstall

rm -f ~/.local/bin/ghscaff   # ghscaff binary
rm -rf ~/.ghscaff/           # boilerplate cache + encrypted vault