brew cask にアプリがなかったら追加しよう

  • 73
    いいね
  • 0
    コメント

公式リポジトリのアプリが増えるとうれしいので、かんたんな追加方法をまとめました。

下記のアプリを実際に登録申請してみました。

お気づきの点などあれば、コメント頂けるとうれしいです。
<(_ _)>

事前確認

brew cask search で該当するアプリが既に登録されていないか確認します。

  1. 見つからなかった
  2. 見つかったが別のバージョンが欲しい

(1) の場合、caskroom/homebrew-cask にプルリクエストを送ります。

(2) の場合、caskroom/homebrew-versions にプルリクエストを送ります。
β版や日本語版、古いバージョンの Cask を登録したい場合はこちらです。

どちらの場合も、Cask の作成方法は同じとなります。

Cask 作成のための仕様

詳細は、こちらにまとめられています。

ここでは実際の手順に沿って、補足を含めて記述します。

登録したいアプリをダウンロードしておく

Cask に登録したいアプリをダウンロードしておきます。
.dmg や .zip 形式の配布ファイルと、これを展開した .app ファイルを用意します。

確認事項

今回の例では、以下の状態であることが分かりました。

※ アプリによっては、解凍後、サブフォルダに内包されている場合があるので、その path 情報が必要になります(ex. foo/bar.app)。

命名ルールを確認する

.rb ファイルを作成しますが、ファイル名などを付ける必要があります。
命名ルールを確認できるツールがあるので、これを利用します。

確認した アプリのファイル名から .app を除いた部分 で調べます。

% "$(brew --repository)/Library/Taps/caskroom/homebrew-cask/developer/bin/generate_cask_token" 'ACTPrinter for Mac.app'
Proposed token:               actprinter
Proposed file name:           actprinter.rb
Cask Header Line:             cask 'actprinter' do

確認事項

  • 生成されたファイル名 ... actprinter.rb

チェックサムを生成する

ダウンロードファイルの checksum を作成します。
sha256 が仕様です。

% shasum -a 256 ~/Downloads/ACTPrinter\ for\ Mac\ 3.1.4.zip
7f92b093be3ddc08f5ce00cd19b3edb13c01a4c4626948b204c484123d3e25e8  /Users/****/Downloads/ACTPrinter for Mac 3.1.4.zip

確認事項

  • チェックサム ... 7f92b093be3ddc08f5ce00cd19b3edb13c01a4c4626948b204c484123d3e25e8

brew cask create で Cask を作成する

生成されたファイル名 をつかって、Cask ファイルを生成します。
こちらもコマンドが用意されています。

% brew cask create actprinter

エディタが起動しますので、確認した内容を埋めていきます。

actprinter.rb
cask 'actprinter' do
  version '3.2.2'
  sha256 '6e49ac75f8a660e33b3f0d3033bf9788cfeef5a0838faad93f06b21af0efb2ee'

  # actprinter.com was verified as official when first introduced to the cask
  url "http://www.actprinter.com/mac/ACTPrinter%20for%20Mac%20#{version}.zip"
  name 'ACTPrinter'
  homepage 'https://www.houdah.com/ACTPrinter/'

  app 'ACTPrinter for Mac.app'
end

※ 上記は v3.2.2 の情報です。

  • version ... アプリのバージョン を書きます。
  • sha256 ... チェックサム を書きます。
  • url ... 配布ファイルの url を書きます。
  • name ... 正式名称 を書きます。
  • homepage ... 配布サイトのホームページ url を書きます。
  • app ... 展開(解凍)後のファイル構成 を確認し、.app ファイルまでのパスを含めて書きます。 今回はサブフォルダがないので アプリのファイル名 のみになりました。

この他にもいろいろな設定があり、登録するものによっては必要なようです。

エディタを保存終了すると、作成したファイルは /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/ に置かれます。

% ls /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/ | grep actprinter 
actprinter.rb

補足

配布ファイルの url にバージョンが含まれず、常に最新バージョンがダウンロードできる場合、下記のように指定します。

cask 'foo' do
  version :latest
  sha256 :no_check

作成した Cask の動作確認をする

ファイルが作成され、brew cask コマンドで扱えるようになりました。
きちんとインストールできるかを確認します。

% brew cask search actprinter
==> Exact match
actprinter
% brew cask info actprinter
actprinter: 3.1.4
http://houdah.com/ACTPrinter/
Not installed
https://github.com/caskroom/homebrew-cask/commits/master/Casks/actprinter.rb
==> Contents
  ACTPrinter for Mac.app (link)

インストールします。

% brew cask install actprinter
==> Downloading http://www.actprinter.com/mac/ACTPrinter%20for%20Mac%203.1.4.zip
######################################################################## 100.0%
==> Symlinking App 'ACTPrinter for Mac.app' to '/Users/deadwood/Applications/ACT
  actprinter installed to '/opt/homebrew-cask/Caskroom/actprinter/3.1.4' (158 files, 3.4M)

無事インストールと利用を確認することができました。

公式リポジトリにプルリクエストを送る

作成した Cask を他の人も使えるように登録してもらいましょう。
事前確認したとおり、今回は caskroom/homebrew-cask にプルリクエストを送ります。

Fork する

caskroom/homebrew-cask · GitHub を GitHub でフォークします。

kobito.1401548940.188048.png

git clone します。

% git clone git@github.com:DriftwoodJP/homebrew-cask.git

作業用ブランチで commit & push する

作業用ブランチを作成します。

% cd homebrew-cask/
% git checkout -b add_actprinter                                 

作成した Cask を ./Casks へ移動します。

% mv /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/actprinter.rb Casks

add, commit します。
コミットメッセージにバージョンを含めます。

% git add .
% git commit -m 'Add ACTPrinter for Mac v3.1.4'

作業用ブランチを push します。

% git remote -v
origin  git@github.com:DriftwoodJP/homebrew-cask.git (fetch)
origin  git@github.com:DriftwoodJP/homebrew-cask.git (push)
% git branch -v
* add_actprinter
  master
% git push origin add_actprinter

GitHub からプルリクエストを送る

フォークしたプロジェクトからプルリクエストを送ります。

kobito.1401549782.053104.png

プルリクエストするとチェックリストが記入済みの状態で表示されます。
確認が終わったら、[x] でチェックしましょう。

merge されれば終了です。

参考資料

このあたりで悩んだところを今回まとめてみました。
参考になれば幸いです。

公式のドキュメントです。