public void Execute(string[] args, IExecutionContext context) { if (!args.Any()) { context.Out(this.GetCommandsList()); return; } if (args[0].Length > 3 && args[0].StartsWith(CommandPrefix, StringComparison.OrdinalIgnoreCase)) { var command = string.Concat(args[0].Skip(3)); var usage = new CommandFactory().Create(command).GetUsage(); context.Out(usage); return; } throw new ToolException(Resources.InvalidArgsErrorMessage, this.GetCommandsList(), ExitCode.InvalidArguments); }
internal static ExitCode Run(string[] args, IExecutionContext context) { try { var factory = new CommandFactory(); factory.Create(args[0]).Execute(args.Skip(1).ToArray(), context); return ExitCode.Success; } catch (ToolException exception) { context.Error(exception.Message); if (!string.IsNullOrEmpty(exception.Out)) { context.Out(exception.Out); } return exception.ExitCode; } catch (Exception) { context.Error(Properties.Resources.InvalidArgsErrorMessage); context.Out(new HelpCommand().GetCommandsList()); return ExitCode.InvalidArguments; } }