Exemplo n.º 1
0
        static void Main(string[] args)
        {
            if (!settings.ParseArgs(args))
            {
                settings.PrintHelp();
                return;
            }

            settings.SetDefaults();
            if (settings.Report != null)
            {
                report    = new ReportRegistry();
                oldReport = ReportRegistry.Load(settings.Report);
            }

            if (settings.Verbose)
            {
                Console.WriteLine($"Protobuf descriptor: {settings.File}");
                Console.WriteLine($"Output directory:    {settings.OutputDir}");
                Console.WriteLine($"Namespace base:      {settings.NamespaceBase}");
            }

            if (settings.SearchDir != null)
            {
                WorkAtDir(settings.SearchDir);
            }
            else
            {
                WorkSingleFile(settings.File);
            }

            if (oldReport != null && settings.RemoveWidowFiles)
            {
                if (settings.Verbose)
                {
                    Console.WriteLine("searching for widow files");
                }
                var remove = oldReport.Generateds.Select(x => x.File)
                             .Except(report.Generateds.Select(x => x.File));
                foreach (var file in remove)
                {
                    if (File.Exists(file))
                    {
                        File.Delete(file);
                    }
                }
            }

            report?.Save(settings.Report);

            if (settings.Verbose)
            {
                Console.WriteLine("Finish.");
            }
        }