# File lib/mongrel/command.rb, line 176
      def run(args)
        # find the command
        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
          # quick hack so that existing commands will keep working but the Mongrel:: ones can be moved
          if ["start", "stop", "restart"].include? cmd_name
            cmd_name = "mongrel::" + cmd_name
          end

                                        # Neutered
          # 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

        # Normally the command is NOT valid right after being created
        # but sometimes (like with -h or -v) there's no further processing
        # needed so the command is already valid so we can skip it.
        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