def run(args)
cmd_name = args.shift
if !cmd_name or cmd_name == "?" or cmd_name == "help"
print_command_list
return true
elsif cmd_name == "--version"
puts "Mongrel Web Server #{Mongrel::Const::MONGREL_VERSION}"
return true
end
begin
if ["start", "stop", "restart"].include? cmd_name
cmd_name = "mongrel::" + cmd_name
end
command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
rescue OptionParser::InvalidOption
STDERR.puts "#$! for command '#{cmd_name}'"
STDERR.puts "Try #{cmd_name} -h to get help."
return false
rescue
STDERR.puts "ERROR RUNNING '#{cmd_name}': #$!"
STDERR.puts "Use help command to get help"
return false
end
if not command.done_validating
if not command.validate
STDERR.puts "#{cmd_name} reported an error. Use mongrel_rails #{cmd_name} -h to get help."
return false
else
command.run
end
end
return true
end