FileMergeをLaunchpadから実行できるようにした
※2014/09/10追記
ブコメで教えて頂きましたが、こんなマドロッコシイことしなくても、シンボリックリンク張れば瞬殺でした!
id:toshimitsu_sasaki さん、ありがとうございます!
$ ln -s /Applications/Xcode.app/Contents/Applications/FileMerge.app /Applications/
まあ、なんか使い道あるんじゃないってことで...
※2015/05/26追記
Meldという差分比較ツールも使っていて、こんなツールも作ってみたので、良かったら使ってみてください。
FileMergeはXcodeのDeveloper Toolsに含まれている差分比較/マージツールですね。
Windowsの頃はWinMergeに非常にお世話になっていました。
ファイルだけでなくフォルダ同士の差分も視覚的にわかりやすくて使いやすかったです。
4年くらい前からMacを使い始めて、その代替となるツールがなくて困りましたが、結局標準開発ツールに含まれているFileMergeがベターであるということで落ち着いています。
特にフォルダ同士の比較に関しては、FileMergeは直感的にわかりにくいですね。
ところが、少し前のXcodeから、それまではApplicationフォルダから起動できていたFileMergeが、なぜか単独のアプリケーションとして使うことができなくなり、Xcodeのメニューから呼び出さなければならなくなってしまいました。
Xcodeを常時起動しているような場合であれば、それでも良いのかもしれないですが、私は普段プログラミングにはEmacsを使っているので、そうなるとわざわざFileMergeのためにXcodeを起動しなければならず、手間が多くなってしまいます。
opendiffコマンド
Xcode以外にFileMergeを起動する方法として、opendiffコマンドがあるようです。
$ opendiff <ファイル1> <ファイル2>
ですが、この場合は比較する2つのファイルを引数を要求されるため、あらかじめアプリを起動しておいて、Finderからドラッグ&ドロップでファイルやフォルダを放り込むという手軽な使い方ができないのが微妙でした。
FileMergeをTerminalから起動する
探してみると、FileMergeのアプリ自体がなくなったわけではなく、Xcode.appの中に内包される形で残っていました。
よって、Terminalから
$ /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge
と実行することで、単独でFileMergeを起動させることができました。
FileMergeを起動するシェルスクリプトをアプリ化する
ということは、このコマンドをシェルスクリプトにでもして、Applicationフォルダに置いておけばLaunchpadから起動できるかな?と考えていたところ、こんな記事を見つけてしまいました。
MacOSXでシェルスクリプトを.app形式のアプリケーションにするmkapp.app - maruko2 Note.
そういえば、Macのアプリケーションというのは、WindowsのEXE形式などのようなバイナリファイルではなくて、.appという拡張子?がついたフォルダ内に、必要なリソースがパッケージングされた形なんですよね。
ということで、さっそくFileMergeを起動するシェルスクリプトを実行するアプリを生成するスクリプトを作ってみました。
FileMerge.appを単独で起動するfmerge.app生成スクリプト
適当なフォルダにmakefmerge.shとscript.shを作って、makefmerge.shを実行すると、fmerge.appが生成されます。
これをApplicationフォルダに置いておけば、
この通り、Launchcpadから直接FileMergeを起動できるようになりました。
これで差分比較作業が捗りそうです。
参考
No.1スクール講師陣による 世界一受けたいiPhoneアプリ開発の授業 [iOS 8 & Xcode 6 & Swift対応]
- 作者: 桑村治良,我妻幸長,高橋良輔,七島偉之
- 出版社/メーカー: 技術評論社
- 発売日: 2015/04/10
- メディア: Kindle版
- この商品を含むブログを見る