def initialize(args)
super()
@@Options[:show_ends] = ''
@@Options[:cddb_dir] = @@CddbDir
opts = OptionParser.new do |opts|
opts.banner = "Usage: #$0 [options]"
opts.on('-D', '--cddb_dir DIR',
'set CDDB directory to DIR') do |dir|
unless File.directory? dir
raise OptionParser::InvalidArgument, " (not a directory)"
else
unless File.readable?(dir) || File.executable?(dir)
raise OptionParser::InvalidArgument, " (directory not read/exec)"
end
end
@@Options[:cddb_dir] = dir
end
opts.on('-E', '--show-ends [STRING]',
'display [STRING] at end of each line') do |string|
@@Options[:show_ends] = string || '$'
end
opts.on('-L', '--total_albums [PATT]',
'show total albums') do |patt|
@@Options[:total_albums] = patt || ''
end
opts.on('-A', '--total_artists [PATT]',
'show total artists') do |patt|
@@Options[:total_artists] = patt || ''
end
opts.on('-n', '--number', 'number all output lines') do
@@Options[:number_lines] = true
end
opts.on_tail('-h', '--help', 'display this help and exit') do
puts opts
exit
end
end
begin
opts.parse!(args)
rescue OptionParser::MissingArgument, OptionParser::InvalidOption,
OptionParser::InvalidArgument => ooops
puts ooops
puts opts
exit(1)
end
end