private static int Main(string[] args) { int exitCode = (int)ExitCode.Error; try { Settings settings = null; try { settings = Settings.Create(args); if (settings.ShowHelp && IsShowMarkdownHelpIncluded(args)) { Console.WriteLine(HelpGenerator.Generate(Resources.HelpMarkdownTemplate, settings)); } else if (settings.ShowHelp) { Console.WriteLine(HelpGenerator.Generate(Resources.HelpTextTemplate, settings)); } else { AutoRest.Generate(settings); } } catch (CodeGenerationException) { // Do not add the CodeGenerationException again. Will be written in finally block } catch (Exception exception) { Logger.LogError(exception, exception.Message); } finally { if ( Logger.Entries.Any( e => e.Severity == LogEntrySeverity.Error || e.Severity == LogEntrySeverity.Fatal)) { Console.ForegroundColor = ConsoleColor.Red; } else if (Logger.Entries.Any(e => e.Severity == LogEntrySeverity.Warning)) { Console.ForegroundColor = ConsoleColor.Yellow; } if (settings != null && !settings.ShowHelp) { if (Logger.Entries.Any(e => e.Severity == LogEntrySeverity.Error || e.Severity == LogEntrySeverity.Fatal)) { Console.WriteLine(Resources.GenerationFailed); Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0} {1}", typeof(Program).Assembly.ManifestModule.Name, string.Join(" ", args))); } else { Console.WriteLine(Resources.GenerationComplete, settings.CodeGenerator, settings.Input); exitCode = (int)ExitCode.Success; } } Console.ResetColor(); // Include LogEntrySeverity.Infos for verbose logging. if (args.Any(a => "-Verbose".Equals(a, StringComparison.OrdinalIgnoreCase))) { Console.ForegroundColor = ConsoleColor.White; Logger.WriteInfos(Console.Out); } Console.ForegroundColor = ConsoleColor.Yellow; Logger.WriteWarnings(Console.Out); Console.ForegroundColor = ConsoleColor.Red; Logger.WriteErrors(Console.Error, args.Any(a => "-Verbose".Equals(a, StringComparison.OrdinalIgnoreCase))); Console.ResetColor(); } } catch (Exception exception) { Console.Error.WriteLine(Resources.ConsoleErrorMessage, exception.Message); Console.Error.WriteLine(Resources.ConsoleErrorStackTrace, exception.StackTrace); } return(exitCode); }
private static void Main(string[] args) { try { if (IsShowMarkdownHelpIncluded(args)) { Console.WriteLine(HelpGenerator.Generate(Resources.HelpMarkdownTemplate)); } else if (IsShowHelpIncluded(args)) { Console.WriteLine(HelpGenerator.Generate(Resources.HelpTextTemplate)); } else { Settings settings = null; try { settings = Settings.Create(args); AutoRest.Generate(settings); var codeGenerator = ExtensionsLoader.GetCodeGenerator(settings); Console.WriteLine(codeGenerator.UsageInstructions); } catch (CodeGenerationException) { // Do not add the CodeGenerationException again. Will be written in finally block } catch (Exception exception) { Logger.LogError(exception, exception.Message); } finally { if ( Logger.Entries.Any( e => e.Severity == LogEntrySeverity.Error || e.Severity == LogEntrySeverity.Fatal)) { Console.ForegroundColor = ConsoleColor.Red; } else if (Logger.Entries.Any(e => e.Severity == LogEntrySeverity.Warning)) { Console.ForegroundColor = ConsoleColor.Yellow; } Logger.WriteErrors(Console.Error, args.Any(a => "-Verbose".Equals(a, StringComparison.OrdinalIgnoreCase))); Logger.WriteWarnings(Console.Out); // Include LogEntrySeverity.Infos for verbose logging. if (args.Any(a => "-Verbose".Equals(a, StringComparison.OrdinalIgnoreCase))) { Logger.WriteInfos(Console.Out); } if (settings != null) { Console.WriteLine(Resources.GenerationComplete, settings.CodeGenerator, settings.Input); } Console.ResetColor(); } } } catch (Exception exception) { Console.Error.WriteLine(Resources.ConsoleErrorMessage, exception.Message); Console.Error.WriteLine(Resources.ConsoleErrorStackTrace, exception.StackTrace); } }