示例#1
0
        // TODO -- recipe selection / filtering
        public IEnumerable <HostManifest> Read()
        {
            var environment = EnvironmentSettings.ReadFrom(_settings.EnvironmentFile);

            environment.SetRoot(_settings.TargetDirectory);

            var recipes = RecipeReader.ReadRecipes(_settings.RecipesDirectory, environment);

            recipes = _sorter.Order(recipes);

            // TODO -- throw up if no recipes
            //REVIEW: hardening
            if (recipes == null || !recipes.Any())
            {
                return(new HostManifest[0]);
            }
            //hardening

            var firstRecipe = recipes.First();

            recipes.Skip(1).Each(firstRecipe.AppendBehind);

            var hosts = firstRecipe.Hosts;

            addEnvironmentSettingsToHosts(environment, hosts);


            return(hosts);
        }