Created
February 12, 2013 08:39
-
-
Save takkkun/4760996 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 1. src/**/*.txtにマッチするファイル(例: src/hello/goodbye.txt)を探し | |
# 2. マッチしたファイルを:targetオプションに指定した方法で目的のファイル名(例: work/hello/goodbye.normalized.txt)を求め | |
# 3. `file 目的のファイル名 => マッチしたファイル名`というタスクを作る | |
# | |
# ってことがしたい。ちなみにgenerate_fromの返り値は目的のファイル名の一覧 | |
work_files = generate_from 'src/**/*.txt', :target => ['work', :dirname, :filename, '.normalized.txt'] do |t| | |
sh "./normalize #{t.from} #{t.to}" # ./normalize-text-file src/hello/goodbye.txt work/hello/goodbye.normalized.txt | |
end | |
# 直前のタスクの定義で得たファイル名の一覧を使ってさらにタスクを定義したり | |
target_files = generate_from work_files, :target => ['target', :dirname, :filename, '.target.txt'] do |t| | |
sh "./generate #{t.from} #{t.to}" # ./generate work/hello/goodbye.normalized.txt target/hello/goodbye.target.txt | |
end | |
# まとめたり | |
file 'target/all' => target_files do |t| | |
sh "./aggregate -s #{t.prerequisites.join(',')} #{t.name}" # ./aggregate -s target/hello/goodbye.target.txt,... target/all | |
end | |
# できるrake用プラグインないのかな? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment