コード例 #1
0
ファイル: Program.cs プロジェクト: dihan0604/autorest
        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);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: smithaborkar/autorest
        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);
            }
        }