bin/explain in shiba-0.2.3 vs bin/explain in shiba-0.3.0

- old
+ new

@@ -13,62 +13,31 @@ parser = Shiba::Configure.make_options_parser(options) parser.banner = "Run a list of queries through shiba's analyzer." parser.parse! -option_path = Shiba::Configure.mysql_config_path -if option_path - puts "Found config at #{option_path}" if options["verbose"] - options['default_file'] ||= option_path -end - -option_file = if options['default_file'] && File.exist?(options['default_file']) - File.read(options['default_file']) -else - "" -end - if options['json'] && options['html'] $stderr.puts "Can only output to json or html, not both" $stderr.puts parser.banner - exit 1 + exit 2 end -if option_file && !options['default_group'] - if option_file.include?("[client]") - options['default_group'] = 'client' - end - if option_file.include?("[mysql]") - options['default_group'] = 'mysql' - end -end - -def require_option(parser, name) - $stderr.puts "Required: #{name}" - $stderr.puts parser.banner - exit 1 -end - -if !options["username"] && !option_file.include?('user') - require_option(parser, 'username') -end - -if !options["database"] && !option_file.include?('database') - require_option(parser, 'database') -end - file = options.delete("file") file = File.open(file, "r") if file -Shiba.configure(options) +Shiba.configure(options) do |err_msg| + $stderr.puts(err_msg) + $stderr.puts(parser) + exit 2 +end schema_stats_fname = options["stats"] if schema_stats_fname && !File.exist?(schema_stats_fname) $stderr.puts "No such file: #{schema_stats_fname}" - exit 1 + exit 2 end file = $stdin if file.nil? json = options['json'] json = File.open('/dev/null', 'w') if json.nil? @@ -86,18 +55,18 @@ if problems.any? query_word = problems.size == 1 ? 'query' : 'queries' $stderr.puts "#{problems.size} problematic #{query_word} detected" if options['json'] - exit 3 + exit 1 end page = Shiba::Output.new(queries, { 'output' => options['html'] }).make_web! if !File.exist?(page) $stderr.puts("Failed to generate #{page}") - exit 1 + exit 2 end $stderr.puts "Report available at #{page}" - exit 3 + exit 1 end