Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 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]);
         }
     }
 }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
 public string Run(Configuration configuration)
 {
     CheckConfigKeys(configuration);
     return TemplateTransformer.TransformTemplateRecursive(Content, configuration.Data);
 }