Пример #1
0
        public static string Generate(EFMGSettings settings, TextWriter sw = null)
        {
            Debug.WriteLine($"Generating file : {settings.FilePath}");

            var newFileName = settings.FilePath;

            if (File.Exists(newFileName))
            {
                File.Delete(newFileName);
            }

            EnsureDirectoryFor(newFileName);

            var tw = sw ?? File.CreateText(newFileName);

            //generate the code
            try
            {
                Generator generator = new Generator(settings.Options);
                generator.Generate(tw);
            }
            finally
            {
                if (sw == null)
                {
                    tw.Flush();
                    tw.Close();
                    tw.Dispose();
                }
            }


            return(newFileName);
        }
Пример #2
0
        public static void ManageFilePath(string configFilePath, EFMGSettings settings)
        {
            if (settings.FilePath == null)
            {
                string newFileName = configFilePath;

                if (configFilePath.EndsWith(".json"))
                {
                    newFileName = configFilePath.Replace(".json", "");
                }

                newFileName = newFileName.EndsWith(".cs") ? newFileName : newFileName + ".cs";

                settings.FilePath = newFileName;
            }

            FileInfo info = new FileInfo(settings.FilePath);

            if (!Path.IsPathRooted(settings.FilePath))
            {
                var directoryName = Path.GetDirectoryName(configFilePath);
                var newFileName   = Path.Combine(directoryName, settings.FilePath);
                settings.FilePath = newFileName;
            }
        }
Пример #3
0
        public static void Generate(String configFilePath)
        {
            if (!File.Exists(configFilePath))
            {
                throw new Exception($"The file passed as parameter does not exist : {configFilePath}");
            }

            string fileContent = File.ReadAllText(configFilePath);

            EFMGSettings[] settingCollection = EFMGSettings.Build(fileContent);

            foreach (var setting in settingCollection)
            {
                ManageFilePath(configFilePath, setting);

                Generate(setting);
            }
        }