IQueryable <IPackage> GetUpdatedPackages()
        {
            IPackageRepository aggregateRepository = registeredPackageRepositories.CreateAggregateRepository();
            UpdatedPackages    updatedPackages     = CreateUpdatedPackages(aggregateRepository);

            updatedPackages.SearchTerms = Filter;
            return(updatedPackages.GetUpdatedPackages().AsQueryable());
        }
Exemple #2
0
        IQueryable <IPackage> GetUpdatedPackages()
        {
            IPackageRepository        aggregateRepository = registeredPackageRepositories.CreateAggregateRepository();
            IPackageManagementProject project             = GetSelectedProject(aggregateRepository);
            var updatedPackages = new UpdatedPackages(project, aggregateRepository);

            updatedPackages.SearchTerms = Filter;
            return(updatedPackages.GetUpdatedPackages().AsQueryable());
        }
Exemple #3
0
 void CreateUpdatedPackages()
 {
     sourceRepository.GetUpdatesAction = (packagesNames, includePrerelease, includeAllVersions, targetFrameworks, versionConstraints) => {
         includePreleaseUsedWhenCheckingForUpdates = includePrerelease;
         packageNamesUsedWhenCheckingForUpdates.AddRange(packagesNames.Select(p => (IPackageName)p));
         return(sourceRepositoryPackages.AsQueryable());
     };
     updatedPackages = new UpdatedPackages(project, sourceRepository);
 }
Exemple #4
0
        IQueryable <IPackage> GetUpdatedPackages()
        {
            IPackageRepository repository      = CreatePackageRepositoryForActivePackageSource();
            UpdatedPackages    updatedPackages = CreateUpdatedPackages(repository);

            updatedPackages.SearchTerms = Filter;
            return(updatedPackages
                   .GetUpdatedPackages(IncludePrerelease)
                   .AsQueryable());
        }
        void CreateUpdatedPackages()
        {
            sourceRepository
            .Stub(repository => repository.GetPackages())
            .Return(sourceRepositoryPackages.AsQueryable());

            sourceRepository
            .Stub(repository => repository.GetUpdates(
                      Arg <IEnumerable <IPackage> > .Is.Anything,
                      Arg <bool> .Is.Anything,
                      Arg <bool> .Is.Anything,
                      Arg <IEnumerable <FrameworkName> > .Is.Anything,
                      Arg <IEnumerable <IVersionSpec> > .Is.Anything))
            .WhenCalled(call => {
                includePreleaseUsedWhenCheckingForUpdates = (bool)call.Arguments[1];
                packagesUsedWhenCheckingForUpdates.AddRange(call.Arguments[0] as IEnumerable <IPackage>);
            })
            .Return(sourceRepositoryPackages.AsQueryable());

            updatedPackages = new UpdatedPackages(installedPackages.AsQueryable(), sourceRepository);
        }
Exemple #6
0
 void CreateUpdatedPackages(IPackageRepository repository)
 {
     updatedPackages = new UpdatedPackages(project, repository);
 }
Exemple #7
0
        /// <summary>
        /// Visists a project.
        /// </summary>
        /// <param name="directory">The directory of the project.</param>
        /// <param name="config">The <see cref="GitDependFile"/> with project configuration information.</param>
        /// <returns>The return code.</returns>
        public ReturnCode VisitProject(string directory, GitDependFile config)
        {
            if (config == null)
            {
                return(ReturnCode = ReturnCode.Success);
            }

            // If there are specific dependencies specified
            // and this one isn't in the list
            // skip it.
            if (_whitelist.Any() &&
                _whitelist.All(d => !string.Equals(d, config.Name, StringComparison.InvariantCultureIgnoreCase)))
            {
                return(ReturnCode.Success);
            }

            if (string.IsNullOrEmpty(directory) || !_fileSystem.Directory.Exists(directory))
            {
                return(ReturnCode = ReturnCode.DirectoryDoesNotExist);
            }

            StringBuilder commitMessage = new StringBuilder();

            commitMessage.AppendLine("GitDepend: updating dependencies");
            commitMessage.AppendLine();

            var solutions = _fileSystem.Directory.GetFiles(directory, "*.sln", SearchOption.AllDirectories);

            foreach (var solution in solutions)
            {
                _nuget.Restore(solution);
            }

            foreach (var solution in solutions)
            {
                var path = solution.Remove(0, directory.Length + 1);
                commitMessage.AppendLine(path);

                foreach (var dependency in config.Dependencies)
                {
                    // If there are specific dependencies specified
                    // and this one isn't in the list
                    // skip it.
                    if (_whitelist.Any() &&
                        _whitelist.All(d => !string.Equals(d, dependency.Configuration.Name, StringComparison.InvariantCultureIgnoreCase)))
                    {
                        continue;
                    }

                    var dependencyDir = _fileSystem.Path.GetFullPath(_fileSystem.Path.Combine(directory, dependency.Directory));
                    var dir           = _fileSystem.Path.GetFullPath(_fileSystem.Path.Combine(dependencyDir, dependency.Configuration.Packages.Directory));

                    foreach (var file in _fileSystem.Directory.GetFiles(dir, "*.nupkg"))
                    {
                        var name = _fileSystem.Path.GetFileNameWithoutExtension(file);


                        if (string.IsNullOrEmpty(name))
                        {
                            continue;
                        }

                        var match = Pattern.Match(name);

                        if (!match.Success)
                        {
                            continue;
                        }

                        var id      = match.Groups["id"].Value;
                        var version = match.Groups["version"].Value;

                        commitMessage.AppendLine($"* {id}.{version}");

                        _nuget.WorkingDirectory = directory;

                        var cacheDir = GetCacheDirectory();

                        if (string.IsNullOrEmpty(cacheDir))
                        {
                            return(ReturnCode = ReturnCode.CouldNotCreateCacheDirectory);
                        }

                        _nuget.Update(solution, id, version, cacheDir);

                        var package = $"{id}.{version}";
                        if (!UpdatedPackages.Contains(package))
                        {
                            UpdatedPackages.Add(package);
                        }
                    }
                }
            }

            _console.WriteLine("================================================================================");
            _console.WriteLine($"Making update commit on {directory}");
            _git.WorkingDirectory = directory;
            _git.Add("*.csproj", @"*\packages.config");
            _console.WriteLine("================================================================================");
            _git.Status();

            _git.Commit(commitMessage.ToString());

            return(ReturnCode = ReturnCode.Success);
        }
Exemple #8
0
 public override string ToString()
 {
     return($"Validation {(Outcome ? "succeeded" : "failed")} with {UpdatedPackages.Count()} matched assets ({DurationMilliseconds:N0}-ms)");
 }