BrewKit is build infrastructure for tea.
tea +tea.xyz/brewkit pkg build zlib.net
If you are inside a pantry and tea magic is installed you can omit the tea
preamable and package names, BrewKit will figure out what packages you are
editing and build them.
$ pkg build
tea.xyz/brewkit: building zlib.net
You can build for Linux (via Docker) using -L
, eg:
pkg -L build
If you don’t have tea’s magic installed you need to explicitly add brewkit to the environment:
tea +tea.xyz/brewkit pkg build
Outside a pantry checkout you need to both ask tea
to add brewkit to the
environment and specify which package to operate on. Outside a pantry checkout
we operate against your tea installation (which defaults to ~/.tea
).
tea +tea.xyz/brewkit pkg build zlib.net
This repo is for tooling built on top of the tea primitives with the purpose of generalized building and testing of open source packages.
If you have an idea for an addition open a discussion!
Getting the rpath
out of a macOS binary:
lsrpath() {
otool -l "$@" |
awk '
/^[^ ]/ {f = 0}
$2 == "LC_RPATH" && $1 == "cmd" {f = 1}
f && gsub(/^ *path | \(offset [0-9]+\)$/, "") == 2
'
}
This should be added to a pkg doctor
type thing I reckon. eg.
pkg doctor zlib.net -Q:rpath
.
Inputs: TAG_NAME
if ! git diff-index --quiet HEAD --; then
echo "error: dirty working tree" >&2
exit 1
fi
if [ "$(git rev-parse --abbrev-ref HEAD)" != "main" ]; then
echo "error: requires main branch" >&2
exit 1
fi
if [[ "$TAG_NAME" != v* ]]; then
TAG_NAME="v$TAG_NAME"
fi
git push origin main
tea gh release create "$TAG_NAME"