Ejemplo n.º 1
0
 private IRemoteNuget remoteOrCached(IRemoteNuget nuget)
 {
     if (nuget == null)
     {
         return(null);
     }
     return(_solution.Cache.Retrieve(nuget));
 }
Ejemplo n.º 2
0
        public static bool IsUpdateFor(this IRemoteNuget nuget, Dependency dependency)
        {
            var version = dependency.SemanticVersion();

            if (version == null)
            {
                return(false);
            }

            return(nuget.Version > version);
        }
Ejemplo n.º 3
0
        private IRemoteNuget nugetFor(Dependency dependency, bool retrying = false)
        {
            IRemoteNuget nuget = null;
            var          feeds = _connectivity.FeedsFor(_solution);

            foreach (var feed in feeds)
            {
                _connectivity.IfOnline(feed, x => nuget = getLatestFromFloatingFeed(x, dependency));
                if (nuget != null)
                {
                    break;
                }

                if (dependency.IsFloat() || dependency.Version.IsEmpty())
                {
                    _connectivity.IfOnline(feed, x => nuget = x.FindLatest(dependency));
                    if (nuget != null && dependency.Version.IsNotEmpty() && nuget.Version < dependency.SemanticVersion())
                    {
                        nuget = null;
                        continue;
                    }

                    if (nuget != null)
                    {
                        break;
                    }
                }

                _connectivity.IfOnline(feed, x => nuget = x.Find(dependency));
                if (nuget != null)
                {
                    break;
                }
            }



            if (nuget == null)
            {
                if (_connectivity.AllOffline(feeds) && !retrying)
                {
                    return(nugetFor(dependency, true));
                }

                feeds.OfType <FloatingFileSystemNugetFeed>()
                .Each(files => files.DumpLatest());

                RippleAssert.Fail("Could not find " + dependency);
            }

            return(remoteOrCached(nuget));
        }
Ejemplo n.º 4
0
        public void SetUp()
        {
            theName     = "Bottles";
            theVersion  = SemanticVersion.Parse("1.0.0.1");
            theFileName = "Bottles.1.0.0.1.nupkg";

            theInnerNuget = MockRepository.GenerateStub <IRemoteNuget>();
            theInnerNuget.Stub(x => x.Name).Return(theName);
            theInnerNuget.Stub(x => x.Version).Return(theVersion);
            theInnerNuget.Stub(x => x.Filename).Return(theFileName);

            theDirectory = "cache";

            theNuget = new CacheableNuget(theInnerNuget, theDirectory);
        }
Ejemplo n.º 5
0
		public void SetUp()
		{
			theName = "Bottles";
			theVersion = SemanticVersion.Parse("1.0.0.1");
			theFileName = "Bottles.1.0.0.1.nupkg";

			theInnerNuget = MockRepository.GenerateStub<IRemoteNuget>();
			theInnerNuget.Stub(x => x.Name).Return(theName);
			theInnerNuget.Stub(x => x.Version).Return(theVersion);
			theInnerNuget.Stub(x => x.Filename).Return(theFileName);

			theDirectory = "cache";

			theNuget = new CacheableNuget(theInnerNuget, theDirectory);
		}
Ejemplo n.º 6
0
        private IEnumerable <Dependency> findDependenciesFor(Dependency dependency, UpdateMode mode, int depth, SearchLocation location)
        {
            IRemoteNuget nuget = null;

            if (location == SearchLocation.Local && _solution.HasLocalCopy(dependency.Name))
            {
                try
                {
                    // Try to hit the local zip and read it. Mostly for testing but it'll detect a corrupted local package as well
                    nuget = _solution.LocalNuget(dependency.Name);
                    nuget.Dependencies().ToList();

                    RippleLog.Debug(dependency.Name + " already installed");
                }
                catch
                {
                    nuget = null;
                }
            }

            if (nuget == null)
            {
                nuget = NugetFor(dependency);
            }

            var dependencies = new List <Dependency>();

            if (depth != 0)
            {
                var dep         = dependency;
                var markAsFixed = mode == UpdateMode.Fixed || !isFloated(dependency);

                if (dep.IsFloat() && markAsFixed)
                {
                    dep = new Dependency(nuget.Name, nuget.Version, UpdateMode.Fixed);
                }

                dependencies.Add(dep);
            }

            nuget
            .Dependencies()
            .Each(x => dependencies.AddRange(findDependenciesFor(x, mode, depth + 1, location)));

            return(dependencies.OrderBy(x => x.Name));
        }
Ejemplo n.º 7
0
        public IRemoteNuget Retrieve(IRemoteNuget nuget)
        {
            if (nuget is FileSystemNuget)
            {
                return(nuget);
            }

            var dependency = new Dependency(nuget.Name, nuget.Version.Version.ToString());
            var file       = Find(dependency);

            if (file == null)
            {
                return(new CacheableNuget(nuget, _folder));
            }

            return(new FileSystemNuget(file));
        }
Ejemplo n.º 8
0
        private void processNuget(IRemoteNuget nuget, Dependency dependency, UpdateMode mode, int depth, SearchLocation location,
                                  List <Dependency> dependencies)
        {
            if (depth != 0)
            {
                var dep         = dependency;
                var markAsFixed = mode == UpdateMode.Fixed || !FeedRegistry.IsFloat(_solution, dependency);

                if (dep.IsFloat() && markAsFixed)
                {
                    dep = new Dependency(nuget.Name, nuget.Version, UpdateMode.Fixed);
                }

                dependencies.Add(dep);
            }

            nuget
            .Dependencies()
            .Each(x => findDependenciesFor(x, mode, depth + 1, location, dependencies));
        }
Ejemplo n.º 9
0
        public IRemoteNuget LatestFor(Solution solution, Dependency dependency, bool forced = false)
        {
            if (dependency.Mode == UpdateMode.Fixed && !forced)
            {
                return(null);
            }

            IRemoteNuget latest = null;
            var          feeds  = _connectivity.FeedsFor(solution);

            foreach (var feed in feeds)
            {
                try
                {
                    IRemoteNuget nuget = null;
                    _connectivity.IfOnline(feed, x => nuget = feed.FindLatest(dependency));

                    if (latest == null)
                    {
                        latest = nuget;
                    }

                    if (latest != null && nuget != null && latest.Version < nuget.Version)
                    {
                        latest = nuget;
                    }
                }
                catch (Exception)
                {
                    RippleLog.Debug("Error while finding latest " + dependency);
                }
            }

            if (isUpdate(latest, dependency))
            {
                return(remoteOrCached(latest));
            }

            return(null);
        }
Ejemplo n.º 10
0
        private bool isUpdate(IRemoteNuget latest, Dependency dependency)
        {
            if (latest == null)
            {
                return(false);
            }

            var localDependencies = _solution.LocalDependencies();

            if (localDependencies.Has(dependency))
            {
                var local = localDependencies.Get(dependency);
                return(latest.IsUpdateFor(local));
            }

            if (dependency.IsFloat())
            {
                return(true);
            }

            return(latest.IsUpdateFor(dependency));
        }
Ejemplo n.º 11
0
 public StubFinder(IRemoteNuget nuget)
 {
     _nuget = nuget;
     _throw = false;
 }
Ejemplo n.º 12
0
        public IRemoteNuget Retrieve(IRemoteNuget nuget)
        {
            if (nuget is FileSystemNuget)
            {
                return nuget;
            }

            var dependency = new Dependency(nuget.Name, nuget.Version.Version.ToString());
            var file = Find(dependency);

            if (file == null)
            {
                return new CacheableNuget(nuget, _folder);
            }

            return new FileSystemNuget(file);
        }
Ejemplo n.º 13
0
 public void Update(IRemoteNuget nuget)
 {
 }
Ejemplo n.º 14
0
 public IRemoteNuget Retrieve(IRemoteNuget nuget)
 {
     return(nuget);
 }
Ejemplo n.º 15
0
 public void Update(IRemoteNuget nuget)
 {
 }
Ejemplo n.º 16
0
		public CacheableNuget(IRemoteNuget inner, string directory)
		{
			_inner = inner;
			_directory = directory;
		}
Ejemplo n.º 17
0
        private void processNuget(IRemoteNuget nuget, Dependency dependency, UpdateMode mode, int depth, SearchLocation location,
                                  List<Dependency> dependencies)
        {
            if (depth != 0)
            {
                var dep = dependency;
                var markAsFixed = mode == UpdateMode.Fixed || !FeedRegistry.IsFloat(_solution, dependency);

                if (dep.IsFloat() && markAsFixed)
                {
                    dep = new Dependency(nuget.Name, nuget.Version, UpdateMode.Fixed);
                }

                dependencies.Add(dep);
            }

            nuget
                .Dependencies()
                .Each(x => findDependenciesFor(x, mode, depth + 1, location, dependencies));
        }
Ejemplo n.º 18
0
 public CacheableNuget(IRemoteNuget inner, string directory)
 {
     _inner     = inner;
     _directory = directory;
 }
Ejemplo n.º 19
0
 public void Update(IRemoteNuget nuget)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 20
0
 public static Dependency ToDependency(this IRemoteNuget nuget, UpdateMode mode = UpdateMode.Float)
 {
     return(new Dependency(nuget.Name, nuget.Version.ToString(), mode));
 }
Ejemplo n.º 21
0
 private IRemoteNuget remoteOrCached(IRemoteNuget nuget)
 {
     if (nuget == null) return null;
     return _solution.Cache.Retrieve(nuget);
 }
Ejemplo n.º 22
0
 public static NugetResult For(IRemoteNuget nuget)
 {
     return new NugetResult {Nuget = nuget};
 }
Ejemplo n.º 23
0
 public StubFinder(IRemoteNuget nuget)
 {
     _nuget = nuget;
     _throw = false;
 }
Ejemplo n.º 24
0
 public void Update(IRemoteNuget nuget)
 {
     UpdateAll(new[] { nuget });
 }
Ejemplo n.º 25
0
 public IRemoteNuget Retrieve(IRemoteNuget nuget)
 {
     return nuget;
 }
Ejemplo n.º 26
0
        private bool isUpdate(IRemoteNuget latest, Dependency dependency)
        {
            if (latest == null) return false;

            var localDependencies = _solution.LocalDependencies();
            if (localDependencies.Has(dependency))
            {
                var local = localDependencies.Get(dependency);
                return latest.IsUpdateFor(local);
            }

            if (dependency.IsFloat())
            {
                return true;
            }

            return latest.IsUpdateFor(dependency);
        }
Ejemplo n.º 27
0
 public void Update(IRemoteNuget nuget)
 {
     UpdateAll(new[] { nuget });
 }
Ejemplo n.º 28
0
 public void Update(IRemoteNuget nuget)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 29
0
 public static NugetResult For(IRemoteNuget nuget)
 {
     return(new NugetResult {
         Nuget = nuget
     });
 }
Ejemplo n.º 30
0
 public static bool IsUpdateFor(this IRemoteNuget nuget, INugetFile dependency)
 {
     return(nuget.Version > dependency.Version);
 }
Ejemplo n.º 31
0
 public static bool IsUpdateFor(this IRemoteNuget nuget, Dependency dependency)
 {
     return(nuget.Version > dependency.SemanticVersion());
 }