public ExtendedTemplateEngineHost(ITemplateEngineHost baseHost, New3Command new3Command) { _baseHost = baseHost; _new3Command = new3Command; }
private static int ActualRun(string commandName, ITemplateEngineHost host, ITelemetryLogger telemetryLogger, New3Callbacks callbacks, string[] args, string?hivePath) { if (args.Any(x => string.Equals(x, "--debug:version", StringComparison.Ordinal))) { ShowVersion(); return(0); } if (args.Any(x => string.Equals(x, "--debug:attach", StringComparison.Ordinal))) { Console.ReadLine(); } int customHiveFlagIndex = args.ToList().IndexOf("--debug:custom-hive"); if (customHiveFlagIndex >= 0) { if (customHiveFlagIndex + 1 >= args.Length) { Reporter.Error.WriteLine("--debug:custom-hive requires 1 arg indicating the absolute or relative path to the custom hive".Bold().Red()); return(1); } hivePath = args[customHiveFlagIndex + 1]; if (hivePath.StartsWith("-")) { Reporter.Error.WriteLine("--debug:custom-hive requires 1 arg indicating the absolute or relative path to the custom hive".Bold().Red()); return(1); } } if (args.Length == 0) { telemetryLogger.TrackEvent(commandName + TelemetryConstants.CalledWithNoArgsEventSuffix); } INewCommandInput commandInput = new NewCommandInputCli(commandName); New3Command instance = new New3Command(commandName, host, telemetryLogger, callbacks, commandInput, hivePath); commandInput.OnExecute(instance.ExecuteAsync); int result; try { using (Timing.Over(host, "Execute")) { result = commandInput.Execute(args); } } catch (Exception ex) { AggregateException?ax = ex as AggregateException; while (ax != null && ax.InnerExceptions.Count == 1) { ex = ax.InnerException; ax = ex as AggregateException; } Reporter.Error.WriteLine(ex.Message.Bold().Red()); while (ex.InnerException != null) { ex = ex.InnerException; ax = ex as AggregateException; while (ax != null && ax.InnerExceptions.Count == 1) { ex = ax.InnerException; ax = ex as AggregateException; } Reporter.Error.WriteLine(ex.Message.Bold().Red()); } Reporter.Error.WriteLine(ex.StackTrace.Bold().Red()); result = 1; } return(result); }