def run!(argv)
command = argv[0]
if command.nil? || command == '-h' || command == '--help'
run_command('help')
exit
elsif command == '-v' || command == '--version'
run_command('version')
exit
elsif command_exists?(command)
begin
run_command(command, argv[1..-1])
rescue => e
if defined?(OptionParser::ParseError) && e.is_a?(OptionParser::ParseError)
puts e
puts
puts "Please see '--help' for valid options."
exit 1
elsif defined?(ConfigFile::DisallowedContextError) && e.is_a?(ConfigFile::DisallowedContextError)
puts "*** Error in #{e.filename} line #{e.line}:"
puts e
exit 1
else
raise e
end
end
else
STDERR.puts "Unknown command '#{command}'. Please type --help for options."
exit 1
end
end