Ejemplo n.º 1
0
        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}");
        }
Ejemplo n.º 2
0
        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}");
        }
Ejemplo n.º 3
0
        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}");
        }
Ejemplo n.º 4
0
        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);
            }
        }