module DirCat class DirCatQuery def self.run return self.new.parse_args( ARGV) end def parse_args( args ) options = {} opts = OptionParser.new opts.banner = "Usage: dircat-query [options] []\n" + "show info on dircat catalogs\n" opts.on("--version", "show the dircat version") do puts "dircat version #{DirCat::version}" return 0 end opts.on("-h", "--help", "Print this message") do puts opts return 0 end opts.on("-v", "--[no-]verbose", "Run verbosely") do |v| options[:verbose] = v end rest = opts.parse( args ) # p options # p ARGV if rest.length < 1 puts "missing catalog!" puts "-h to print help" return 0 end cat_opts = {} cat_filename = rest[0] unless File.exists?(cat_filename) puts "first args must be a catalogue" return 1 end if rest.length > 1 command = rest[1] else command = "report" end # # option verbose # if options.has_key?(:verbose) if options[:verbose] cat_opts[:verbose_level] = 1 end end s = Cat.from_file( cat_filename, cat_opts ) puts s.send( command.to_sym ) 0 end end end