void run()

in command.line/java/com/jetbrains/teamcity/command/CommandRunner.java [48:117]


  void run(final String[] args) throws Exception {
    final Args arguments = new Args(args);
    /**
     * instantiate Debug and set mode according to command line
     */
    final Debug debug = Debug.getInstance();
    debug.setDebug(arguments.isDebugOn());
    //wrap Console to reduce stdout in silent mode
    final IProgressMonitor consoleMonitor = RuntimeUtil.CONSOLE_MONITOR;
    final IProgressMonitor monitor = new IProgressMonitor() {

      public void status(IProgressStatus status) {
        if (!arguments.isSilentOn()) {
          consoleMonitor.status(status);
        }
      }

      public boolean isCancelled() {
        return consoleMonitor.isCancelled();
      }

      public void done() {
        if (!arguments.isSilentOn()) {
          consoleMonitor.done();
        }
      }

      public void cancel() {
        consoleMonitor.cancel();
      }
      public void beginTask(String taskName) {
        if (!arguments.isSilentOn()) {
          consoleMonitor.beginTask(taskName);
        }
      }
    };
    
    final ICommand command = CommandRegistry.getInstance().getCommand(arguments.getCommandId());
    if (command != null) {
      try {
        command.validate(arguments);
        if (command.isConnectionRequired(arguments)) {
          Server server = null;
          try {
            server = openConnection(arguments, monitor);
            command.execute(server, arguments, monitor);
          }
          finally {
            if (server != null) {
              server.dispose();
            }
          }
        }
        else {
          command.execute(null, arguments, monitor);
        }
        // print success result
        reportResult(command);
      } catch (Throwable e) {
        // print error result
        monitor.status(new ProgressStatus(IProgressStatus.ERROR, String.format(Messages.getString("CommandRunner.monitor.error.found"), command.getId())));
        reportError(command, e);
        System.exit(-1);
      }
    } else {
      final ICommand helpCommand = CommandRegistry.getInstance().getCommand(Help.ID);
      helpCommand.execute(null, arguments, monitor);
      reportResult(helpCommand);
    }
  }