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);
}
}