Class: Flacky::CLI
- Inherits:
-
Thor
- Object
- Thor
- Flacky::CLI
- Includes:
- Thor::Actions
- Defined in:
- lib/flacky/cli.rb
Instance Method Summary collapse
- #generate_json(root_dir = ENV['PWD']) ⇒ Object
- #import_json(*args) ⇒ Object
- #missing_urls(root_dir = ENV['PWD']) ⇒ Object
- #strip_pad(*args) ⇒ Object
- #to_mp3(*args) ⇒ Object
- #version ⇒ Object
Instance Method Details
#generate_json(root_dir = ENV['PWD']) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/flacky/cli.rb', line 20 def generate_json(root_dir = ENV['PWD']) start_dir = File.join(File.(root_dir), '**/*.flac') Dir.glob(start_dir).sort.map { |f| File.dirname(f) }.uniq.each do |dir| mdf = File.join(dir, "metadata.json") say("Processing <#{dir}>", :cyan) data = Flacky::MetadataGenerator.new(mdf).combined_data IO.write(mdf, JSON.pretty_generate(data)) end end |
#import_json(*args) ⇒ Object
31 32 33 |
# File 'lib/flacky/cli.rb', line 31 def import_json(*args) args.each { |glob| (glob) } end |
#missing_urls(root_dir = ENV['PWD']) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/flacky/cli.rb', line 37 def missing_urls(root_dir = ENV['PWD']) start_dir = File.join(File.(root_dir), '**/metadata.json') files = [] Dir.glob(start_dir).sort.each do |mdf| attr = JSON.parse(IO.read(mdf))["allmusic_url"] files << mdf if attr.nil? || attr.empty? end if [:print0] print files.join("\x0").concat("\x0") else puts files.join("\n") unless files.empty? end end |
#strip_pad(*args) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/flacky/cli.rb', line 54 def strip_pad(*args) args.each do |glob| Dir.glob(glob).sort.each do |file| say("Processing <#{file}>", :cyan) Flacky::FlacTrackZeroPadStripper.new(file).strip! end end end |
#to_mp3(*args) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/flacky/cli.rb', line 69 def to_mp3(*args) %w{flac lame}.each do |cmd| abort "Command #{cmd} must be on your PATH" unless %x{which #{cmd}} end mp3izer = Flacky::Mp3Convertor.new( :lame_opts => [:'lame-opts'], :dest_root => [:destination] ) args.each { |glob| convert_files(glob, mp3izer) } end |