public void GenerateSpecifications() { Console.WriteLine($"Generating {ToolName} specifications..."); var tool = GenerateTool(PathConstruction.Combine(_outputFolder, $"{ToolName}.json")); using (var parser = CreateSpecificationParser()) { parser.Populate(tool); } PopulateReferences(tool); if (_overwriteFilePath != null) { SpecificationModifier.OverwriteFromFile(tool, _overwriteFilePath); } Directory.CreateDirectory(_outputFolder); ToolSerializer.Save(tool, tool.SpecificationFile); Console.WriteLine(); Console.WriteLine("Generation finished."); Console.WriteLine($"Created Tasks: {tool.Tasks.Count}"); Console.WriteLine($"Created Data Classes: {tool.DataClasses.Count}"); Console.WriteLine($"Created Enumerations: {tool.Enumerations.Count}"); Console.WriteLine($"Created Common Task Properties: {tool.CommonTaskProperties.Count}"); Console.WriteLine($"Created Common Task Property Sets: {tool.CommonTaskPropertySets.Count}"); }
public static void GenerateSpecifications(SpecificationGeneratorSettings settings) { Console.WriteLine("Generating Helm specifications..."); var definitions = DefinitionLoader.LoadDefinitions(settings.DefinitionFolder); definitions.SelectMany(x => x.Options).Concat(definitions.SelectMany(x => x.InheritedOptions)).Select(x => x.Type).ToHashSet() .OrderBy(x => x).ForEach(x => Console.WriteLine(x)); var tool = DefinitionParser.Parse(definitions, settings.Reference); var overwrites = settings.OverwriteFile != null?DefinitionLoader.LoadOverwrites(settings.OverwriteFile) : null; if (overwrites != null) { SpecificationModifier.Overwrite(tool, overwrites); } tool.SpecificationFile = PathConstruction.Combine(settings.OutputFolder, "Helm.json"); Directory.CreateDirectory(settings.OutputFolder); ToolSerializer.Save(tool, tool.SpecificationFile); Console.WriteLine(); Console.WriteLine("Generation finished."); Console.WriteLine($"Created Tasks: {tool.Tasks.Count}"); Console.WriteLine($"Created Data Classes: {tool.DataClasses.Count}"); Console.WriteLine($"Created Enumerations: {tool.Enumerations.Count}"); Console.WriteLine($"Created Common Task Properties: {tool.CommonTaskProperties.Count}"); Console.WriteLine($"Created Common Task Property Sets: {tool.CommonTaskPropertySets.Count}"); }
public static void GenerateSpecifications(SpecificationGeneratorSettings settings) { Console.WriteLine("Generating docker specifications..."); var definitions = DefinitionFetcher.GetCommandDefinitionsFromFolder(settings.DefinitionFolder, settings.Reference, settings.CommandsToSkip); var tool = DefinitionParser.GenerateTool(definitions); Directory.CreateDirectory(settings.OutputFolder); ToolSerializer.Save(tool, PathConstruction.Combine(settings.OutputFolder, "Docker.json")); Console.WriteLine(); Console.WriteLine("Generation finished."); Console.WriteLine($"Created Tasks: {tool.Tasks.Count}"); Console.WriteLine($"Created Data Classes: {tool.DataClasses.Count}"); Console.WriteLine($"Created Enumerations: {tool.Enumerations.Count}"); Console.WriteLine($"Created Common Task Properties: {tool.CommonTaskProperties.Count}"); Console.WriteLine($"Created Common Task Property Sets: {tool.CommonTaskPropertySets.Count}"); }
public static void Write( string outputFolder, IReadOnlyCollection <SpecificationGenerator.ToolContext> tools, IReadOnlyCollection <TableOfContentsEntry> categories, string baseNamespace) { ControlFlow.Assert(tools.Count == categories.Count, "tools.Count == categories.Count()"); foreach (var toolContext in tools) { var toolDirectory = outputFolder; var ns = toolContext.Namespace.Replace(baseNamespace, string.Empty).TrimStart('.'); if (!string.IsNullOrEmpty(ns)) { toolDirectory = toolContext.Namespace.Replace(baseNamespace, string.Empty).Split(separator: '.') .Aggregate(toolDirectory, Path.Combine); } Directory.CreateDirectory(toolDirectory); var toolPath = Path.Combine(toolDirectory, toolContext.Tool.Name + ".json"); ToolSerializer.Save(toolContext.Tool, toolPath); } }