blob: 388168c26477c9cf5aa43ac3d4b23b79be59201f (
plain) (
tree)
|
|
module Jekyll
class MediaFilesGenerator < Generator
safe true
priority :high
def generate(site)
site.collections['podcasts'].docs.each do |document|
date = document.data['date'].strftime('%Y-%m-%d')
slug = document.data['slug']
flac = "resources/podcasts/#{date}-#{slug}.flac"
ogg = "resources/podcasts/#{date}-#{slug}.ogg"
unless File.exist? ogg then
puts "Missing '#{ogg}' file, generating..."
puts `ffmpeg -i #{flac} -ar 48000 -vn -c:a libvorbis -b:a 320k #{ogg}`
site.static_files << Jekyll::StaticFile.new(site, site.source, '', ogg)
end
checksum_file = "#{ogg}.checksum"
checksum = `sha256sum #{flac} #{ogg} | sha256sum | awk '{ print $1 }'`
if File.exist? checksum_file then
unless checksum == File.read(checksum_file)
raise "Checksum mismatch for '#{flac}'.\nRe-generate the Ogg files and checksums with:\n\nrm '#{ogg}' '#{checksum_file}'"
end
else
puts "Missing checksum for '#{flac}', generating..."
File.write(checksum_file, checksum)
end
end
end
end
end
|