自分用のツールをbrewで入れられるようにした時の記録です。
ちなみにそのツールはXcodeのプロジェクトをxc
で開くだけおもちゃです
https://github.com/tattn/xc
Swiftファイルをシェルスクリプトのように動かす
今回はビルドせずに、Swiftファイルをインタプリタとして動かすことにしました。
SwiftもBashスクリプトやRubyスクリプトのように shebang (#!で始まるやつ) をファイルの頭に付けることで、インタプリタでサクッと実行ができます。
$ vi hello
#!/usr/bin/env swift
print("こんにちは世界")
実行権限を与えます。
$ chmod a+x hello
これで実行できます。
$ ./hello
Homebrew用のリポジトリを作成する
本家Homebrewにプルリクエストを送らずに自作ツールをインストールできるようにするためには、brew tapでリポジトリを登録する必要があります。
次は、そのために必要なリポジトリを作成します。
まず、以下のようにツール本体をGithubにpushします。
https://github.com/tattn/xc
そして、Githubのリリース機能を使い、brewでインストールするtar.gzを作成します。
https://github.com/tattn/xc/releases/tag/0.0.1
tar.gzのリンクをコピーして、以下のコマンドでbrewのFormulaのテンプレートを作成します。
$ brew create コピーしたURL
不要な記述があるので、以下のように編集します。(適宜内容を変更してください)
class Xc < Formula
desc "Just open a Xcode project :-)"
homepage "https://github.com/tattn/xc"
url "https://github.com/tattn/xc/archive/0.0.1.tar.gz"
sha256 "053e959fe4d8994c96f629d01d7153ad81699f8d0a67cc984032e081719df673"
def install
bin.install "xc"
end
end
installメソッドの中でインストール方法を記述します。
ここで、makeコマンドなどを呼び出してビルドすることもできます。
brew installしたものは/usr/local/Cellar
以下に展開されます。
bin.install
を使用するだけで、Cellar内から/usr/local/bin
にシンボリックリンクを作成することができます。
今回はSwiftファイルを配置するだけで良いので、bin.install
を使用しました。
できたファイルをGithubにpushします。
この時のリポジトリ名には命名規則があり、
homebrew-ツール名
にする必要があります。
このような感じです。
https://github.com/tattn/homebrew-xc
正しく設定が出ていれば、これで完了です。
インストールする
tapコマンドでリポジトリを登録します。
$ brew tap {ユーザー名}/{homebrew-を除いたリポジトリ名}
例えば、
$ brew tap tattn/xc
インストールします。
$ brew install {homebrew-を除いたリポジトリ名}
例えば、
$ brew install xc
これで、どこでもすぐにインストールすることができるようになりました
参考
HomeBrewのFormulaを作ってみた
https://freedom-man.com/blog/homebrew-formula/
Swift2で作るコマンドラインツール
http://techlife.cookpad.com/entry/2015/11/09/150248