A tiny hermetic build system.
Source + README: git.ryansepassi.com/xb
go install xb.ryansepassi.com/cmd/xb@latest
xb is also importable as a Go library:
import xb "xb.ryansepassi.com" // embed the build engine
import "xb.ryansepassi.com/recipe" // talk to the engine from a Go recipe
See doc/library-api.md (embedder API) and doc/recipe-client.md (recipe-protocol client).
Pubkey: RWT0q2uNQxMIUh6IERC5naRJWGGrFZGNkT4hXTk0O+ZFvz2xUTKbbC+Q
Also available at /xb.pub.
Or as a script (requires minisign):
set -ex
# OS={linux,darwin} ARCH={arm64,amd64}
OS=darwin
ARCH=arm64
V=$(curl https://xb.ryansepassi.com/dl/xb/LATEST)
F=xb-${OS}-${ARCH}.tar.gz
# TOFU xb minisign key
mkdir -p ~/.minisign
[ -f ~/.minisign/xb.pub ] || curl -fsSL -o ~/.minisign/xb.pub https://xb.ryansepassi.com/xb.pub
curl -fsSL -O https://xb.ryansepassi.com/dl/xb/${V}/${F} \
-O https://xb.ryansepassi.com/dl/xb/${V}/${F}.minisig
minisign -V -p ~/.minisign/xb.pub -m ${F}
tar xzvf ${F}
rm ${F} ${F}.minisig
echo "put xb on your PATH"