Edited at

Golangで書いたCLIツールのビルド済みバイナリをbrew tapでインストールできるようにする

More than 1 year has passed since last update.


はじめに

最近趣味でGoで書いてるmyawsというツールにbrew tapを作った。

ビルド済みバイナリをghrなどでGitHubのReleasesページにあらかじめアップロードまでしてたけど、自分の周りの人々に使ってもらうのにインストールの敷居を下げるためにbrewでインストールできるようにしようかなと。brewの本家に登録するほどのものでもないので、とりあえずbrew tapで個人リポジトリで運用。

Goだとビルド済みのバイナリダウンロードして展開するだけなので、思いのほか簡単だった。


手順

まずhomebrew-myawsというリポジトリを作って、

https://github.com/minamijoyo/homebrew-myaws

myaws.rbというファイルを作って、ビルド済みのバイナリを取ってきて展開するだけなら中身これだけ。


myaws.rb

require "formula"

class Myaws < Formula
homepage "https://github.com/minamijoyo/myaws"
url "https://github.com/minamijoyo/myaws/releases/download/v0.0.7/myaws_v0.0.7_darwin_amd64.tar.gz"
sha256 "8857fb781417eb6ed370084a27de57993272d19e35df8db180c41f8cecf632a3"
head "https://github.com/minamijoyo/myaws.git"
version "0.0.7"

def install
bin.install "myaws"
end
end


sha256のダイジェストはtar.gzのファイルをダウンロードしてきて、opensslで確認。

$ openssl dgst -sha256 ~/Downloads/myaws_v0.0.7_darwin_amd64.tar.gz

SHA256(/Users/m-morita/Downloads/myaws_v0.0.7_darwin_amd64.tar.gz)= 8857fb781417eb6ed370084a27de57993272d19e35df8db180c41f8cecf632a3

これで、以下のようにしてインストールすることができるようになった。

$ brew tap minamijoyo/myaws

$ brew install myaws

$ which myaws

/usr/local/bin/myaws

$ myaws version
myaws version: v0.0.7, revision: c24f7f2

うん。よさげ。


まとめ

意外と簡単なので、俺々コマンドをbrewで入れたくなったらどうぞ。

(2017/02/04追記)プライベートなGitHubリポジトリでやる方法は以下に書いた。

HomebrewでプライベートなGitHubリポジトリのReleaseページから社内ツールを配布する