开发者

Recursive wildcards in Rake?

开发者 https://www.devze.com 2022-12-23 19:36 出处:网络
Follow up to this question about GNU make: I\'ve got a directory, flac, containing .FLAC files. I\'ve got a corresponding directory, mp3 containing MP3 files. If a FLAC file is newer than the corresp

Follow up to this question about GNU make:

I've got a directory, flac, containing .FLAC files. I've got a corresponding directory, mp3 containing MP3 files. If a FLAC file is newer than the corresponding MP3 file (or the corresponding MP3 file doesn't exist), then I want to run a bunch of commands to convert the FLAC file to an MP3 file, and copy the tags across.

The kicker: I need to search the flac directory recursively, and create corresponding subdirectories in the mp3 directory. The directories an开发者_JAVA技巧d files can have spaces in the names, and are named in UTF-8.

It turns out that this won't work in make, because of the spaces in the directories and filenames, so I'm wondering how to do it in rake instead...


The best I've come up with so far looks like this:

FLAC_FILES = FileList['flac/**/*.flac']

FLAC_FILES.each do |flac|
  mp3 = flac.pathmap("%{^flac,mp3}X.mp3")
  file mp3 => flac do
    puts "Converting #{flac} to #{mp3}"
  end
  task :default => mp3
end

Critique, anyone?

0

精彩评论

暂无评论...
验证码 换一张
取 消