2011年1月8日土曜日

せっかくなのでformulaを作る

どーしてオレのやることはこう、間が悪くてカッコ悪いんだろう、と落ち込んでばかりもいられない。一生懸命コマンドのまとめを作る過程で、かなりHomeBrewの知識がついた(と思う)。HomeBrewはまだオプションやコマンドが少ないほうなので、なんとかど素人でもman見ながらコマンドを調べることができる。

自分はいつも中途半端な知識ばかりで手早くなんでもやろうとし過ぎるので、今回のようにひとつのtoolについて長い時間かけてまとめたりするのはとてもいい経験だった。また挑戦してみようっと。

それはともかく、せっかくなのでformulaをひとつ作ってHomeBrewの勉強の終りとしたい。
ちょうどいいお題をみつけた。それはFDclone

PC98DOS上で、お世話にならなかった人がいない、というくらいメジャーなファイラです。私は今だにコンソール上のファイル操作はほとんどfdclone使ってます。特にOSXはデフォルトで隠しファイル(先頭に.がつくファイルやフォルダ)を表示できないし、デフォルトいじって表示させるとデスクトップにもなんだか余計なファイルが表示されて気持ちが悪い。その点fdcloneなら・・・っていうのは次のアーティクルで触れることにして、とりあえずformula。

fdcloneのファイル置き場はここ。
http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz
そこでターミナル上で次のコマンドを入力すると・・・
brew create http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz

formula name [FD-3.00j]: fdclone
Warning: Version cannot be determined from URL.
You'll need to add an explicit 'version' to the formula.
とターミナルで警告が出て、一方エディタが起動されて次のような画面になります。

うわー、うちの$EDITORはTextWranglerだったのか・・。知らなかった(^^;)。
ここで入力しないければいけないのは「homepage」が必須、md5はソースのtarボールを落とすときに取得するので後でOK、versionは自動で取得できなかったようなので自分で書き入れる、と。def installは./configureがいらないのでその辺を削除。

入力したformulaはこうなる。
require 'formula'

class Fdclone <Formula
  url 'http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz'
  homepage 'http://hp.vector.co.jp/authors/VA012337/soft/fd/'
  md5 ''
  version '3.00j'
  # depends_on 'cmake'

  def install
    system "make install"
  end
end
すみません、class Fdclone <Formulaの「<」は全角にしてます。そうしないとbloggerが怒るので。
そしてソースを落としてmd5を取得。
brew fetch fdclone
==> Downloading http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz
######################################################################## 100.0%
MD5: 9e12c8a1480cc5f535bf6df852a0defc
SHA1: 4cf6ce007ee62fba7166cb405122b2da7277dca3

Warning: Formula reports different MD5:
へいへい、formulaとmd5がちがう、と怒っているので、ここで表示されたmd5をさっきのformulaに入力してformula完成。
require 'formula'

class Fdclone <Formula
  url 'http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz'
  homepage 'http://hp.vector.co.jp/authors/VA012337/soft/fd/'
  md5 '9e12c8a1480cc5f535bf6df852a0defc'
  version '3.00j'
  # depends_on 'cmake'

  def install
    system "make install"
  end
end
これで
brew install fdclone

と入力すれば、あっという間にインストールされます。もともとfdcloneは野良ビルドするときもmake一発でできる、ということをしっていたので(む、ncursesは必要です。osxはデフォルトで入ってます)ほとんどずるしているようなもんですが、素人でもformulaが作成できる。これ重要。

というわけでHomeBrewの勉強はいったん終了して、インストールできるformulaを眺めていろいろやってみよう。Qtとかも出来るんだなあ。

0 件のコメント:

コメントを投稿