Giter Club home page Giter Club logo

brewkit's Introduction

tea

BrewKit

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 preamble 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, e.g.:

pkg -L build

Without Magic

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

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

Additions

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!

Stuff That Needs to be Added

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. E.g. pkg doctor zlib.net -Q:rpath.

Hacking on brewkit

If you do ../brewkit/bin/pkg build for example your local brewkit will be used rather than that which is installed.

 

Tasks

Bump

Inputs: PRIORITY

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

V=$(git describe --tags --abbrev=0 --match "v[0-9]*.[0-9]*.[0-9]*")
V=$(tea semverator bump $V $PRIORITY)

git push origin main
tea gh release create "v$V"

brewkit's People

Contributors

abevier avatar branchvincent avatar jhheider avatar jrgoodle avatar magnusviri avatar mfts avatar mxcl avatar uesyn avatar waldyrious avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.