rakeで単純なファイル変換するためのRakefileテンプレート
使いたい時:
- wav -> mp3
- bmp -> jpg
- coffee -> js
要は大量のファイルを一撃で変換するためのタスクです。
大きなプロジェクトでは*1最終的にひとつのファイルを生成することになるわけですが、
単純なルールで各ファイルを変換するだけなら、複雑な依存関係を記述する必要はないわけで。
Rakefile(CoffeeScriptをJavaScriptにコンパイルする場合):
require 'rake/clean' SRC = FileList["**/*.coffee"] DST = SRC.ext("js") CC = "coffee" CLEAN.include DST task default: DST rule ".js" => ".coffee" do |t| sh "#{CC} -c #{t.source}" end
いっつも忘れそうになるのでメモしておきます。
ちなみに rule ディレクティブで引数として渡されている t は
t.name で変換後の名前を取得することができます。
gccなんかを使うときに gcc -c #{t.source} -o #{t.name} なんかはよく見かける断片ですね。
参考: http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/
*1:例えば ./configure && make && sudo make install が必要なプロジェクト。