static int Main(string[] args) { try { var consoleLogListener = new ConsoleLogListener(); Logger.RegisterListener(consoleLogListener); Options options; var result = TryGetOptions(args, out options); if (!string.IsNullOrWhiteSpace(options.Log)) { Logger.RegisterListener(new ReportLogListener(options.Log)); } if (options.LogLevel.HasValue) { Logger.LogLevelThreshold = options.LogLevel.Value; } if (!string.IsNullOrEmpty(result.Message)) { Logger.Log(result); } if (result.ResultLevel == ResultLevel.Error) { return(1); } var replayListener = new ReplayLogListener(); replayListener.AddListener(consoleLogListener); Logger.RegisterListener(replayListener); Logger.UnregisterListener(consoleLogListener); var context = new RunningContext(); result = Exec(options, context); if (!string.IsNullOrEmpty(result.Message)) { Logger.Log(result); } if (result.ResultLevel == ResultLevel.Error) { return(1); } if (result.ResultLevel == ResultLevel.Warning) { return(2); } return(0); } finally { Logger.Flush(); Logger.UnregisterAllListeners(); } }
private static int ExecSubCommand(string[] args) { var consoleLogListener = new ConsoleLogListener(); var replayListener = new ReplayLogListener(); replayListener.AddListener(consoleLogListener); Logger.RegisterListener(replayListener); CommandController controller = null; ISubCommand command; try { controller = ArgsParser.Instance.Parse(args); command = controller.Create(); } catch (System.IO.FileNotFoundException fe) { Logger.LogError(fe.Message); return(1); } catch (Exception e) when(e is OptionParserException || e is InvalidOptionException) { Logger.LogError(e.Message); if (controller != null) { Console.WriteLine(controller.GetHelpText()); } return(1); } catch (Exception ex) { Logger.LogError(ex.ToString()); if (controller != null) { Console.WriteLine(controller.GetHelpText()); } return(1); } replayListener.Replay = command.AllowReplay; var context = new SubCommandRunningContext(); try { ThreadPool.SetMinThreads(4, 4); using (new PerformanceScope("executing", LogLevel.Info)) { command.Exec(context); } return(0); } catch (DocumentException de) { Logger.LogError(de.Message); return(1); } catch (DocfxException de) { Logger.LogError(de.Message); return(1); } catch (Exception e) { Logger.LogError(e.ToString()); return(1); } }
private static int ExecSubCommand(string[] args) { var consoleLogListener = new ConsoleLogListener(); var replayListener = new ReplayLogListener(); replayListener.AddListener(consoleLogListener); Logger.RegisterListener(replayListener); CommandController controller = null; ISubCommand command; try { controller = ArgsParser.Instance.Parse(args); command = controller.Create(); } catch (System.IO.FileNotFoundException fe) { Logger.LogError(fe.Message); return(1); } catch (OptionParserException e) { Logger.LogError(e.Message); if (controller != null) { Console.WriteLine(controller.GetHelpText()); } return(1); } catch (Exception ex) { Logger.LogError(ex.ToString()); if (controller != null) { Console.WriteLine(controller.GetHelpText()); } return(1); } if (!(command is ILoggable)) { replayListener.Replay = false; } var context = new SubCommandRunningContext(); try { command.Exec(context); return(0); } catch (DocfxException de) { Logger.LogError(de.Message); return(1); } catch (Exception e) { Logger.LogError(e.ToString()); return(1); } }