コード例 #1
0
ファイル: Program.cs プロジェクト: m-clare/Elements
        private static List <Task <GenerationResult> > ProcessFilesInDir(string dir, string inputDir, string outputDir)
        {
            var tasks = new List <Task <GenerationResult> >();

            foreach (var fi in Directory.EnumerateFiles(dir, "*.json"))
            {
                // ../Geometry/Vector3.json => Geometry/
                var schemaSubDir = Path.GetDirectoryName(fi).Replace(inputDir, ".");
                var outDir       = Path.GetFullPath(Path.Combine(outputDir, schemaSubDir));

                if (!Directory.Exists(outDir))
                {
                    Console.WriteLine($"Creating a new directory {outDir}...");
                    Directory.CreateDirectory(outDir);
                }

                var classPath = Path.Combine(outDir, Path.GetFileNameWithoutExtension(fi) + ".g.cs");
                if (File.Exists(classPath))
                {
                    File.Delete(classPath);
                }

                var schema = File.ReadAllText(fi);
                tasks.Add(TypeGenerator.GenerateUserElementTypeFromJsonAsync(schema, outDir));
            }

            return(tasks);
        }