Skip to content

Commit bd4958a

Browse files
committed
Merge branch 'master' of https://github.com/PowerShell/PSResourceGet into bugfix-versionparsefrompkg
2 parents a867bca + 25d8f49 commit bd4958a

File tree

7 files changed

+452
-157
lines changed

7 files changed

+452
-157
lines changed

src/code/InstallHelper.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ internal class InstallHelper
6060

6161
public InstallHelper(PSCmdlet cmdletPassedIn, NetworkCredential networkCredential)
6262
{
63-
CancellationTokenSource source = new CancellationTokenSource();
63+
CancellationTokenSource source = new();
6464
_cancellationToken = source.Token;
6565
_cmdletPassedIn = cmdletPassedIn;
6666
_networkCredential = networkCredential;
@@ -183,7 +183,7 @@ private List<PSResourceInfo> ProcessRepositories(
183183
ScopeType scope)
184184
{
185185
_cmdletPassedIn.WriteDebug("In InstallHelper::ProcessRepositories()");
186-
List<PSResourceInfo> allPkgsInstalled = new List<PSResourceInfo>();
186+
List<PSResourceInfo> allPkgsInstalled = new();
187187
if (repository != null && repository.Length != 0)
188188
{
189189
// Write error and disregard repository entries containing wildcards.
@@ -262,7 +262,7 @@ private List<PSResourceInfo> ProcessRepositories(
262262
var noToAll = false;
263263

264264
var findHelper = new FindHelper(_cancellationToken, _cmdletPassedIn, _networkCredential);
265-
List<string> repositoryNamesToSearch = new List<string>();
265+
List<string> repositoryNamesToSearch = new();
266266
bool sourceTrusted = false;
267267

268268
// Loop through all the repositories provided (in priority order) until there no more packages to install.
@@ -330,7 +330,7 @@ private List<PSResourceInfo> ProcessRepositories(
330330
allPkgsInstalled.AddRange(installedPkgs);
331331
}
332332

333-
if (_pkgNamesToInstall.Count > 0)
333+
if (!_cmdletPassedIn.MyInvocation.BoundParameters.ContainsKey("WhatIf") && _pkgNamesToInstall.Count > 0)
334334
{
335335
string repositoryWording = repositoryNamesToSearch.Count > 1 ? "registered repositories" : "repository";
336336
_cmdletPassedIn.WriteError(new ErrorRecord(
@@ -547,7 +547,7 @@ private List<PSResourceInfo> InstallPackages(
547547
FindHelper findHelper)
548548
{
549549
_cmdletPassedIn.WriteDebug("In InstallHelper::InstallPackages()");
550-
List<PSResourceInfo> pkgsSuccessfullyInstalled = new List<PSResourceInfo>();
550+
List<PSResourceInfo> pkgsSuccessfullyInstalled = new();
551551

552552
// Install parent package to the temp directory,
553553
// Get the dependencies from the installed package,
@@ -658,7 +658,7 @@ private List<PSResourceInfo> InstallPackages(
658658
}
659659

660660
// If -WhatIf is passed in, early out.
661-
if (!_cmdletPassedIn.ShouldProcess("Exit ShouldProcess"))
661+
if (_cmdletPassedIn.MyInvocation.BoundParameters.ContainsKey("WhatIf"))
662662
{
663663
return pkgsSuccessfullyInstalled;
664664
}
@@ -1203,7 +1203,7 @@ private bool TryExtractToDirectory(string zipPath, string extractPath, out Error
12031203
{
12041204
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
12051205
{
1206-
foreach (ZipArchiveEntry entry in archive.Entries)
1206+
foreach (ZipArchiveEntry entry in archive.Entries.Where(entry => entry.CompressedLength > 0))
12071207
{
12081208
// If a file has one or more parent directories.
12091209
if (entry.FullName.Contains(Path.DirectorySeparatorChar) || entry.FullName.Contains(Path.AltDirectorySeparatorChar))
@@ -1328,17 +1328,17 @@ private bool CallAcceptLicense(PSResourceInfo p, string moduleManifest, string t
13281328

13291329
if (File.Exists(moduleManifest))
13301330
{
1331-
using (StreamReader sr = new StreamReader(moduleManifest))
1331+
using (StreamReader sr = new(moduleManifest))
13321332
{
13331333
var text = sr.ReadToEnd();
13341334

13351335
var pattern = "RequireLicenseAcceptance\\s*=\\s*\\$true";
13361336
var patternToSkip1 = "#\\s*RequireLicenseAcceptance\\s*=\\s*\\$true";
13371337
var patternToSkip2 = "\\*\\s*RequireLicenseAcceptance\\s*=\\s*\\$true";
13381338

1339-
Regex rgx = new Regex(pattern);
1340-
Regex rgxComment1 = new Regex(patternToSkip1);
1341-
Regex rgxComment2 = new Regex(patternToSkip2);
1339+
Regex rgx = new(pattern);
1340+
Regex rgxComment1 = new(patternToSkip1);
1341+
Regex rgxComment2 = new(patternToSkip2);
13421342
if (rgx.IsMatch(text) && !rgxComment1.IsMatch(text) && !rgxComment2.IsMatch(text))
13431343
{
13441344
requireLicenseAcceptance = true;
@@ -1409,14 +1409,14 @@ private bool DetectClobber(string pkgName, Hashtable parsedMetadataHashtable, ou
14091409

14101410
// Get installed modules, then get all possible paths
14111411
// selectPrereleaseOnly is false because even if Prerelease is true we want to include both stable and prerelease, would never select prerelease only.
1412-
GetHelper getHelper = new GetHelper(_cmdletPassedIn);
1412+
GetHelper getHelper = new(_cmdletPassedIn);
14131413
IEnumerable<PSResourceInfo> pkgsAlreadyInstalled = getHelper.GetPackagesFromPath(
14141414
name: new string[] { "*" },
14151415
versionRange: VersionRange.All,
14161416
pathsToSearch: _pathsToSearch,
14171417
selectPrereleaseOnly: false);
14181418

1419-
List<string> listOfCmdlets = new List<string>();
1419+
List<string> listOfCmdlets = new();
14201420
if (parsedMetadataHashtable.ContainsKey("CmdletsToExport"))
14211421
{
14221422
if (parsedMetadataHashtable["CmdletsToExport"] is object[] cmdletsToExport)
@@ -1430,8 +1430,8 @@ private bool DetectClobber(string pkgName, Hashtable parsedMetadataHashtable, ou
14301430

14311431
foreach (var pkg in pkgsAlreadyInstalled)
14321432
{
1433-
List<string> duplicateCmdlets = new List<string>();
1434-
List<string> duplicateCmds = new List<string>();
1433+
List<string> duplicateCmdlets = new();
1434+
List<string> duplicateCmds = new();
14351435
// See if any of the cmdlets or commands in the pkg we're trying to install exist within a package that's already installed
14361436
if (pkg.Includes.Cmdlet != null && pkg.Includes.Cmdlet.Length != 0)
14371437
{

src/code/V2ServerAPICalls.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public V2ServerAPICalls (PSRepositoryInfo repository, PSCmdlet cmdletPassedIn, N
5656
HttpClientHandler handler = new HttpClientHandler();
5757
bool token = false;
5858

59-
if(networkCredential != null)
59+
if(networkCredential != null)
6060
{
6161
token = String.Equals("token", networkCredential.UserName) ? true : false;
6262
};
@@ -72,7 +72,7 @@ public V2ServerAPICalls (PSRepositoryInfo repository, PSCmdlet cmdletPassedIn, N
7272
} else {
7373

7474
handler.Credentials = networkCredential;
75-
75+
7676
_sessionClient = new HttpClient(handler);
7777
};
7878

@@ -359,7 +359,7 @@ public override FindResults FindName(string packageName, bool includePrerelease,
359359
if (type != ResourceType.None) {
360360
filterBuilder.AddCriterion(GetTypeFilterForRequest(type));
361361
}
362-
362+
363363
var requestUrlV2 = $"{Repository.Uri}/FindPackagesById()?{queryBuilder.BuildQueryString()}";
364364
string response = HttpRequestCall(requestUrlV2, out errRecord);
365365
if (errRecord != null)
@@ -424,7 +424,7 @@ public override FindResults FindNameWithTag(string packageName, string[] tags, b
424424
}
425425

426426
var requestUrlV2 = $"{Repository.Uri}/FindPackagesById()?{queryBuilder.BuildQueryString()}";
427-
427+
428428
string response = HttpRequestCall(requestUrlV2, out errRecord);
429429
if (errRecord != null)
430430
{
@@ -638,7 +638,7 @@ public override FindResults FindVersion(string packageName, string version, Reso
638638
if (!_isJFrogRepo) {
639639
filterBuilder.AddCriterion($"Id eq '{packageName}'");
640640
}
641-
641+
642642
filterBuilder.AddCriterion($"NormalizedVersion eq '{version}'");
643643
if (type != ResourceType.None) {
644644
filterBuilder.AddCriterion(GetTypeFilterForRequest(type));
@@ -694,7 +694,7 @@ public override FindResults FindVersionWithTag(string packageName, string versio
694694
if (!_isJFrogRepo) {
695695
filterBuilder.AddCriterion($"Id eq '{packageName}'");
696696
}
697-
697+
698698
filterBuilder.AddCriterion($"NormalizedVersion eq '{version}'");
699699
if (type != ResourceType.None) {
700700
filterBuilder.AddCriterion(GetTypeFilterForRequest(type));
@@ -943,7 +943,7 @@ private string FindTagFromEndpoint(string[] tags, bool includePrerelease, bool i
943943
}
944944

945945
filterBuilder.AddCriterion($"substringof('PS{(isSearchingModule ? "Module" : "Script")}', Tags) eq true");
946-
946+
947947
foreach (string tag in tags)
948948
{
949949
filterBuilder.AddCriterion($"substringof('{tag}', Tags) eq true");
@@ -987,7 +987,7 @@ private string FindCommandOrDscResource(string[] tags, bool includePrerelease, b
987987
" ",
988988
tags.Select(tag => $"tag:{tagPrefix}{tag}")
989989
) + "'";
990-
990+
991991

992992
var requestUrlV2 = $"{Repository.Uri}/Search()?{queryBuilder.BuildQueryString()}";
993993

@@ -1271,7 +1271,7 @@ private string FindVersionGlobbing(string packageName, VersionRange versionRange
12711271
if (!includePrerelease) {
12721272
filterBuilder.AddCriterion("IsPrerelease eq false");
12731273
}
1274-
1274+
12751275
// We need to explicitly add 'Id eq <packageName>' whenever $filter is used, otherwise arbitrary results are returned.
12761276

12771277
// If it's a JFrog repository do not include the Id filter portion since JFrog uses 'Title' instead of 'Id',
@@ -1283,7 +1283,7 @@ private string FindVersionGlobbing(string packageName, VersionRange versionRange
12831283
if (type == ResourceType.Script) {
12841284
filterBuilder.AddCriterion($"substringof('PS{type.ToString()}', Tags) eq true");
12851285
}
1286-
1286+
12871287

12881288
var requestUrlV2 = $"{Repository.Uri}/FindPackagesById()?{queryBuilder.BuildQueryString()}";
12891289

@@ -1306,7 +1306,7 @@ private Stream InstallVersion(string packageName, string version, out ErrorRecor
13061306
if (_isADORepo)
13071307
{
13081308
// eg: https://pkgs.dev.azure.com/<org>/<project>/_packaging/<feed>/nuget/v2?id=test_module&version=5.0.0
1309-
requestUrlV2 = $"{Repository.Uri}?id={packageName}&version={version}";
1309+
requestUrlV2 = $"{Repository.Uri}?id={packageName.ToLower()}&version={version}";
13101310
}
13111311
else if (_isJFrogRepo)
13121312
{

0 commit comments

Comments
 (0)