Created
May 24, 2024 18:43
-
-
Save josh-cooley/ed1990df34edd310953ea03cf671ea33 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static async Task HandleDependencies( | |
NuGetFramework framework, | |
SourceCacheContext cacheContext, | |
ILogger logger, | |
IEnumerable<NuGetEndpointResources> resources, | |
ISet<SourcePackageDependencyInfo> availablePackages, | |
ISet<PackageDependency> dependencyCache, ChocolateyConfiguration configuration, | |
IEnumerable<PackageDependency> dependencies) | |
{ | |
foreach (var dependency in dependencies) | |
{ | |
var cacheHasBetterDependency = dependencyCache.Any(dc => | |
dc.Id == dependency.Id && | |
dc.VersionRange.IsSubSetOrEqualTo(dependency.VersionRange)); | |
if (cacheHasBetterDependency) | |
{ | |
continue; | |
} | |
dependencyCache.Add(dependency); | |
if (dependency.VersionRange.HasLowerAndUpperBounds && dependency.VersionRange.MaxVersion == dependency.VersionRange.MinVersion) | |
{ | |
await GetPackageDependencies(new PackageIdentity(dependency.Id.ToLower(), dependency.VersionRange.MaxVersion), framework, cacheContext, logger, resources, availablePackages, dependencyCache, configuration); | |
} | |
else | |
{ | |
await GetPackageDependencies( | |
dependency.Id.ToLower(), framework, cacheContext, logger, resources, availablePackages, dependencyCache, configuration, dependency.VersionRange); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static async Task HandleDependencies( | |
NuGetFramework framework, | |
SourceCacheContext cacheContext, | |
ILogger logger, | |
IEnumerable<NuGetEndpointResources> resources, | |
ISet<SourcePackageDependencyInfo> availablePackages, | |
ISet<PackageDependency> dependencyCache, ChocolateyConfiguration configuration, | |
IEnumerable<PackageDependency> dependencies) | |
{ | |
foreach (var dependency in dependencies) | |
{ | |
if (dependencyCache.Contains(dependency)) | |
{ | |
continue; | |
} | |
dependencyCache.Add(dependency); | |
if (dependency.VersionRange.HasLowerAndUpperBounds && dependency.VersionRange.MaxVersion == dependency.VersionRange.MinVersion) | |
{ | |
await GetPackageDependencies(new PackageIdentity(dependency.Id.ToLower(), dependency.VersionRange.MaxVersion), framework, cacheContext, logger, resources, availablePackages, dependencyCache, configuration); | |
} | |
else | |
{ | |
await GetPackageDependencies( | |
dependency.Id.ToLower(), framework, cacheContext, logger, resources, availablePackages, dependencyCache, configuration, dependency.VersionRange); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment