private IRemoteNuget remoteOrCached(IRemoteNuget nuget) { if (nuget == null) { return(null); } return(_solution.Cache.Retrieve(nuget)); }
public static bool IsUpdateFor(this IRemoteNuget nuget, Dependency dependency) { var version = dependency.SemanticVersion(); if (version == null) { return(false); } return(nuget.Version > version); }
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)); }
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); }
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); }
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)); }
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)); }
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)); }
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); }
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)); }
public StubFinder(IRemoteNuget nuget) { _nuget = nuget; _throw = false; }
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); }
public void Update(IRemoteNuget nuget) { }
public IRemoteNuget Retrieve(IRemoteNuget nuget) { return(nuget); }
public CacheableNuget(IRemoteNuget inner, string directory) { _inner = inner; _directory = directory; }
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)); }
public void Update(IRemoteNuget nuget) { throw new System.NotImplementedException(); }
public static Dependency ToDependency(this IRemoteNuget nuget, UpdateMode mode = UpdateMode.Float) { return(new Dependency(nuget.Name, nuget.Version.ToString(), mode)); }
private IRemoteNuget remoteOrCached(IRemoteNuget nuget) { if (nuget == null) return null; return _solution.Cache.Retrieve(nuget); }
public static NugetResult For(IRemoteNuget nuget) { return new NugetResult {Nuget = nuget}; }
public void Update(IRemoteNuget nuget) { UpdateAll(new[] { nuget }); }
public IRemoteNuget Retrieve(IRemoteNuget nuget) { return nuget; }
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); }
public static NugetResult For(IRemoteNuget nuget) { return(new NugetResult { Nuget = nuget }); }
public static bool IsUpdateFor(this IRemoteNuget nuget, INugetFile dependency) { return(nuget.Version > dependency.Version); }
public static bool IsUpdateFor(this IRemoteNuget nuget, Dependency dependency) { return(nuget.Version > dependency.SemanticVersion()); }