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?
精彩评论