public static void GenerateSpecifications(SpecificationGeneratorSettings settings) { Console.WriteLine("Generating Azure specifications..."); Console.WriteLine($"Max depth: {settings.MaxDepth}"); Console.WriteLine($"Min depth for category: {settings.MinDepthForCategory}"); Console.WriteLine($"Min sub tasks for category: {settings.MinSubTasksForCategory}"); Console.WriteLine($"Generate extensions: {settings.GenerateExtension}"); Console.WriteLine(); Console.WriteLine("Parsing ToC..."); var tocs = DefinitionLoader.LoadTablesOfContent(settings.DefinitionFolder); var referenceToc = tocs.Single(x => x.Uid == "az"); Console.WriteLine($"ToC parsed. Commands found: {referenceToc.TotalCommandsInTable}."); Console.WriteLine("Parsing definitions..."); var definitions = DefinitionLoader.LoadCommandDefinitions(settings.DefinitionFolder, settings.Reference); var generator = new SpecificationGenerator(settings, definitions, referenceToc); Console.WriteLine("Generating specifications..."); var tools = generator.Generate(out var categories).ToList(); SpecificationWriter.Write(settings.OutputFolder, tools, categories.ToArray(), settings.BaseNamespace); Console.WriteLine(); Console.WriteLine("Generation finished."); Console.WriteLine($"Created Tools: {tools.Count}"); Console.WriteLine($"Created Tasks: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.Tasks.Count)}"); Console.WriteLine($"Created Data Classes: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.DataClasses.Count)}"); Console.WriteLine($"Created Enumerations: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.Enumerations.Count)}"); }
private SpecificationGenerator( SpecificationGeneratorSettings settings, IReadOnlyCollection <Definition> definitions, TableOfContentsEntry referenceToc) { _settings = settings; _definitions = definitions; _toc = referenceToc; }