public static void ForOneSet(string templateDir, string outputDir, string configDir, string configRoot, string templateExtension, string configExtension, bool debug, Configuration parameters, string templatePrefix = null) { Logger.Debug("ForOneSet(templateDir: {0}, outputDir: {1}, configDir: {2}, templateExtensions: {3}, configExtensions: {4}, debug: {5})", templateDir, outputDir, configDir, templateExtension, configExtension, debug); templateDir = Path.GetFullPath(templateDir); outputDir = Path.GetFullPath(outputDir); configDir = Path.GetFullPath(configDir); configRoot = Path.GetFullPath(configRoot); Logger.Debug(@"After transforming to absolute paths:"); Logger.Debug(@"templateDir: '{0}'", templateDir); Logger.Debug(@"outputDir: '{0}'", outputDir); Logger.Debug(@"configDir: '{0}'", configDir); Logger.Debug(@"configRoot: '{0}'", configRoot); Logger.Debug(@"Replacing {{userDir}} with '" + Environment.UserName + "'"); configDir = ReplaceUserDirInPath(configDir); var configuration = Configuration.FromPath(configRoot, configDir, configExtension, parameters); var templates = FileUtils .GetOwnAndChildrenFiles(templateDir, templateExtension) .Select(Template.FromFile); foreach (var template in templates) { Logger.Debug("GenerateConfigsForOneProject processing template: {0}", template.Path); var result = template.Run(configuration); if (debug) { Console.WriteLine("Config compiled"); } var templatePath = template.Path.Replace(templateDir, String.Empty) .Replace(Path.GetFileName(template.Path), String.Empty) .Trim(Path.DirectorySeparatorChar); var templateFile = Path.GetFileName(template.Path) .Replace(String.Format(".{0}", templateExtension), String.Empty) .Trim(Path.DirectorySeparatorChar); FileUtils.SaveCompiledFile(result, Path.Combine(outputDir, templatePath, templatePrefix + templateFile)); if (debug) { Console.WriteLine("Config saved"); } } //if (returnCode != 0) //{ // Console.WriteLine("ERROR INFO ==============================="); // Console.WriteLine("templateDir: {0}", templateDir); // Console.WriteLine("outputDir: {0}", outputDir); // Console.WriteLine("configDir: {0}", configDir); // Console.WriteLine("templateExtension: {0}", templateExtension); // Console.WriteLine("configExtension: {0}", configExtension); // Console.WriteLine("debug: {0}", debug); // Console.WriteLine("=========================================="); //} //return returnCode; }
private void CheckConfigKeys(Configuration configuration) { var configKeys = TemplateTransformer.GetAllConfigKeysFromTemplate(Content); foreach (var configKey in configKeys) { var key = TemplateTransformer.GetTemplateKeyWithoutAfixes(configKey); var configurationHasKey = configuration.Data.ContainsKey(key); if (!configurationHasKey) { Logger.Warning("Warning: '{0}' - Is not in configuration values", configKey); } else { Logger.Debug("{0}: {1}", configKey, configuration.Data[key]); } } }
public static Configuration FromPath(string configRoot, string configDir, string configExtension, Configuration configOverwrites) { Logger.Debug("Configuration.FromPath (configRoot: {0}, configDir: {1}, configExtension: {2})", configRoot, configDir, configExtension); Logger.Debug("Configuration.FromPath - current path {0}", Environment.CurrentDirectory); IList<string> configurationPaths = FileUtils.GetOwnAndParentFiles(configRoot, configDir, configExtension); var configurations = configurationPaths .Select(FromXmlFile) .ToList(); if (configOverwrites != null) { configurations.Insert(0, configOverwrites); } var result = Merge(configurations); Logger.Debug("Configuration.FromPath - result.Count: {0}", result.Data.Count); return result; }
public string Run(Configuration configuration) { CheckConfigKeys(configuration); return TemplateTransformer.TransformTemplateRecursive(Content, configuration.Data); }