iOS アプリや macOS アプリの開発にあたって、開発を補助するためのコマンドラインツールを使うことがよくあります。その際に、それらのツールを開発環境やビルド環境にどうインストールしてどう管理するか、というのは注意を払っておくべきことのひとつです。
macOS にコマンドラインツールを入れる手段としては Homebrew が手軽でありメジャーです。ただ、実際の開発では、プロジェクトごとに使うツールのバージョンを指定したいことがあると思います。Homebrew はそういった細かい用途には向いていません。
そんな場合に Mint が便利です。Mint は Swift Package Manager ベースで開発された Swift 製コマンドラインツールを管理するためのツールです。
例えば、SwiftLint や Carthage といったツールが管理できます。Mint を使うと、複数のバージョンをインストールしておき、バージョンを指定して実行することが可能になります。
Mint のインストール
Mint 自体は Homebrew でインストールできます。
brew tap yonaskolb/Mint https://github.com/yonaskolb/Mint.git
brew install mint
ツールのインストール&実行
Mint でツールをインストールするには次のようにします。
mint install name/repo
引数には GitHub のリポジトリ名を指定します。あるいは git リポジトリの URL でも良いです。
例えば SwiftLint をインストールするには次のようにします。
mint install realm/swiftlint
これを実行すると、Mint 管理下のフォルダ(/usr/local/lib/mint
)に対象のソースコードがダウンロードされて Swift PM でビルドされます。
その後、デフォルトでは、グローバル(/usr/local/bin
)にコマンドがインストールされます。以後は mint を使わずにツールのコマンドを直接実行できます。
グローバルにインストールしない場合
mint install
のオプションとして --global=false
を指定すると Mint 管理下にのみインストールされます。この場合、インストールしたツールを実行するには mint run
を使います。
例えば Mint 管理下の SwiftLint を実行するには次のようにします。
mint run realm/swiftlint swiftlint
つまり、実行したいコマンドの前に mint run realm/swiftlint
をつけるということになります。
コマンドに引数を渡す場合はさらに後ろに続けます。例えば swiftlint version
を実行するなら次のようにします。
mint run realm/swiftlint swiftlint version
なお、実は mint run
は、まだ mint install
されていなかった場合はインストールもしてくれます(この際はグローバルへのインストールは行われません)。
バージョンを指定してインストール&実行
mint install
のときに、リポジトリ名の後ろにバージョンを指定すると、指定したバージョンをインストールできます。
mint install realm/swiftlint@0.24.2
mint run
のときに、リポジトリ名の後ろにバージョンを指定すると、指定したバージョンを実行できます。
mint run realm/swiftlint@0.24.2 swiftlint
この方法を使うことで、冒頭に書いたような「プロジェクトごとに使うツールのバージョンを指定したい」というニーズに対応可能です。
インストールされているバージョンの確認
mint list
コマンドでインストール済みのツールとバージョンが確認できます。
Installed mint packages:
Carthage
- 0.26.2
- 0.28.0
SwiftLint
- 0.24.2
- 0.25.0