Skip to content

Instantly share code, notes, and snippets.

@ake-persson
Last active January 28, 2022 17:43
Show Gist options
  • Save ake-persson/ca29cca70f0b458aee4d to your computer and use it in GitHub Desktop.
Save ake-persson/ca29cca70f0b458aee4d to your computer and use it in GitHub Desktop.
Homebrew Formula for a Go app

Create Homebrew Formula for a Go application

Add go build script to your Git repo

gobuild.sh

#!/bin/bash

set -eux

export GOPATH="$(pwd)/.gobuild"
SRCDIR="${GOPATH}/src/github.com/mickep76/tf"

[ -d ${TMPDIR} ] && rm -rf ${TMPDIR}
mkdir -p ${GOPATH}/{src,pkg,bin}
mkdir -p ${SRCDIR}
cp tf.go ${SRCDIR}
(
    echo ${GOPATH}
    cd ${SRCDIR}
    go get .
    go install .
)

Create tar.gz

You can do this by tagging your Github repository with a version.

Update Brew

brew update

Create Formula skel

# brew create 'https://github.com/mickep76/tf/archive/0.2.tar.gz'

Modify Formula

/usr/local/Library/Formula/tf.rb

class Tf < Formula
  homepage "https://github.com/mickep76/tf"
  url "https://github.com/mickep76/tf/archive/0.2.tar.gz"
  sha256 "b59730cfbc3c62027bd91942c70d3d07c2bbc4f82b0332d17da977bb7f2041bc"

  depends_on "go" => :build

  def install
    system "gobuild.sh"
    bin.install ".gobuild/bin/tf" => "tf"
  end

  test do
    system "#{bin}/tf", "--help"
  end
end

Audit Formula

# brew audit --strict tf

Test local install

# HOMEBREW_MAKE_JOBS=1 brew install -v tf

Github pull request

Github pull request

@Solorad
Copy link

Solorad commented Apr 30, 2019

@Mickep76 hello!
Can you please write a little bit more about step Github pull request? What is it for? The main repository where released archive is already present? Or what?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment