private static ManifestInfo Create(string manifestPath, ManifestFilter manifestFilter, IManifestOptionsInfo options) { string manifestDirectory = PathHelper.GetNormalizedDirectory(manifestPath); Manifest model = LoadModel(manifestPath, manifestDirectory); model.Validate(manifestDirectory); ManifestInfo manifestInfo = new ManifestInfo { Model = model, Registry = options.RegistryOverride ?? model.Registry, Directory = manifestDirectory }; manifestInfo.VariableHelper = new VariableHelper(model, options, manifestInfo.GetRepoById); manifestInfo.AllRepos = manifestInfo.Model.Repos .Select(repo => RepoInfo.Create( repo, manifestInfo.Registry, model.Registry, manifestFilter, options, manifestInfo.VariableHelper, manifestInfo.Directory)) .ToArray(); if (model.Readme != null) { manifestInfo.ReadmePath = Path.Combine(manifestInfo.Directory, model.Readme.Path); if (model.Readme.TemplatePath != null) { manifestInfo.ReadmeTemplatePath = Path.Combine(manifestInfo.Directory, model.Readme.TemplatePath); } } IEnumerable <string> repoNames = manifestInfo.AllRepos.Select(repo => repo.QualifiedName).ToArray(); foreach (PlatformInfo platform in manifestInfo.GetAllPlatforms()) { platform.Initialize(repoNames, manifestInfo.Registry); } IEnumerable <Repo> filteredRepoModels = manifestFilter.GetRepos(manifestInfo.Model); manifestInfo.FilteredRepos = manifestInfo.AllRepos .Where(repo => filteredRepoModels.Contains(repo.Model)) .ToArray(); return(manifestInfo); }
private static ManifestInfo Create(string manifestPath, ManifestFilter manifestFilter, IManifestOptionsInfo options) { string manifestJson = File.ReadAllText(manifestPath); Manifest model = JsonConvert.DeserializeObject <Manifest>(manifestJson); string manifestDirectory = PathHelper.GetNormalizedDirectory(manifestPath); model.Validate(manifestDirectory); ManifestInfo manifestInfo = new ManifestInfo { Model = model, Registry = options.RegistryOverride ?? model.Registry, Directory = manifestDirectory }; manifestInfo.VariableHelper = new VariableHelper(model, options, manifestInfo.GetRepoById); manifestInfo.AllRepos = manifestInfo.Model.Repos .Select(repo => RepoInfo.Create( repo, manifestInfo.Registry, model.Registry, manifestFilter, options, manifestInfo.VariableHelper, manifestInfo.Directory)) .ToArray(); IEnumerable <string> repoNames = manifestInfo.AllRepos.Select(repo => repo.QualifiedName).ToArray(); foreach (PlatformInfo platform in manifestInfo.GetAllPlatforms()) { platform.Initialize(repoNames, manifestInfo.Registry); } IEnumerable <Repo> filteredRepoModels = manifestFilter.GetRepos(manifestInfo.Model); manifestInfo.FilteredRepos = manifestInfo.AllRepos .Where(repo => filteredRepoModels.Contains(repo.Model)) .ToArray(); return(manifestInfo); }