class PhusionPassenger::Standalone::Command

def self.create_default_options

def self.create_default_options
  return {}
end

def initialize(argv)

def initialize(argv)
  @argv = argv.dup
  @options = self.class.create_default_options
end

def load_and_merge_global_options(options)

def load_and_merge_global_options(options)
  path = ConfigUtils.global_config_file_path
  if File.exist?(path)
    begin
      @global_options = ConfigUtils.load_config_file(path)
    rescue ConfigUtils::ConfigLoadError => e
      STDERR.puts "*** Warning: #{e.message}"
      return
    end
    @options.merge!(@global_options)
  else
    @global_options = {}
  end
end

def parse_options

def parse_options
  load_and_merge_global_options(@options)
  @parsed_options = {}
  @parser = self.class.create_option_parser(@parsed_options)
  begin
    @original_argv = @argv.dup
    @parser.parse!(@argv)
    @options.merge!(@parsed_options)
  rescue OptionParser::ParseError => e
    STDERR.puts "*** ERROR: #{e}"
    abort @parser.to_s
  end
  if @options[:help]
    puts @parser
    exit
  end
end