brew tapでGolangの自作アプリケーションを公開する方法




どうも、高妻です。

ossもいくつか作ってますが、全然活発ではないので今後力を入れるためにもGolangでTwitterクライアントを作りました。

Twitterクライアントと言っても、スクレイピングした結果をコンソールに表示しているだけなので全然大したことはしてませんが勉強がてら公開してみます。

ソースコードはGitHubで公開しています。

スクリプトのインストールと実行はbrewで行えるようにしています。

今回はオリジナルのスクリプトをbrewでどうやって使えるようにするのか下記順番で解説したいと思います。

解説手順
  1. 言葉の解説
  2. ソースコードとフォーミュラ用リポジトリの準備
  3. Golangでバイナリの作成とアップロード
  4. フォーミュラの作成
  5. 自作アプリケーションのインストールと実行

1. 言葉の解説

brewとは

brewとはMac OS上で便利ツールを簡単にインストールできるソフトウェアです。Macユーザならマストで使っていると思うので深くは解説しません。

今回はこのbrewを使って自作したアプリケーションをインストールできるようにして、さらに実行できるようにします。

brew tapとは

brew tapとはGitHubに上げたフォーミュラというインストール手順書に従って自作アプリケーションをインストールしてくれる仕組みです。

簡単にできるので順番に解説して行きます。

2. ソースコードとフォーミュラ用リポジトリの準備

冗長ですがリポジトリを2つ用意します。今回の場合だとGo-Twitterとhomebrew-Go-Twitterというリポジトリを用意しました。

OSSとしてみんなにコミットしてもらうのはGo-Twitterの方で、homebrew-Go-Twitterはbrewでインストールできるバージョンの管理を行います。

頭にhomebrewと着くのはbrew tapの決まりなので深く考える必要はありません。最悪分けずにhomebrewの方に統一してもいいですが頭にhomebrewと付けるのがダサいので別にしています。

リポジトリの使い分け
  • Go-Twitter:自作アプリケーションのソースコード
  • homebrew-Go-Twitter:フォーミュラ置き場

3. Golangでバイナリの作成とアップロード

brewはMacでしか使えないのでMacで動作するようにバイナリをビルドします。

Golangだと簡単にビルドできるのでそんなに解説は必要ないですが一応。

go envした時のGOARCHとGOOSがそれぞれamd64 、darwinになってればいいみたいです。

実行時は特に指定することなくこれだけで大丈夫です。

-oオプションでビルドファイル名が決められるのでgo-twitterとしました。

このバイナリファイルをGo-Twitterリポジトリにアップロードします。GitHubのrelaseタブからバージョンを作ってバイナリファイルがアップロードできます。

このバイナリファイルのURLをこのあと使います。右クリックしてリンクをコピーしておいて下さい。

4. フォーミュラの作成

フォーミュラは自作アプリのインストール手順を明記する拡張子がrb(ruby)のファイルになります。

先に結果を載せておきます。設定すべき項目は下記です。

  • desc:自作アプリの説明
  • url:バイナリのurl(さっきアップロードしてリンクをコピーしたやつ)
  • sha256:バイナリのハッシュ値(この後解説)
  • insntallメソッド:インストール方法を記述。今回はバイナリなのでbin-installでバイナリのファイル名を指定するだけ

sha256の簡単な求め方

opensslコマンドでバイナリファイルを指定すると簡単に取得できます。ここで出力されたsha256をフォーミュラに設定します。

全て記入が完了したらリポジトリにpushして下さい。フォーミュラの設定はこれで完了です。

5. 自作アプリケーションのインストールと実行

バイナリとフォーミュラの準備が終わったので実際にインストールして使えるか試します。

brew tapでインストール

インストールはこれだけです。

実行

あとは実行するだけです。20件くらいのtweetが表示されます。フォーマットがキレイにならないのが直近の解決したい問題ですね。

最後に

こんな感じで少しずつでも自分の作ったものを公開していきたいと思います。

修正プルリク待ってます。ソースコードめちゃくちゃ小さいので簡単だと思うのでよろしくお願いします。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です