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); }
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; } }
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); } }