Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }