Skip to content

Commit 6e8871f

Browse files
committed
Add wildcard support to Update-Package
1 parent 3f31b04 commit 6e8871f

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"cSpell.words": [
33
"cuda",
44
"Nieto",
5-
"powerprepare"
5+
"powerprepare",
6+
"Runspace"
67
]
78
}

src/code/ToolProvider.cs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System.Collections.Generic;
66
using System.Diagnostics;
7+
using System.Management.Automation;
78
using System.Text.RegularExpressions;
89

910
namespace AnyPackage.Provider.DotNet
@@ -168,8 +169,25 @@ public void UninstallPackage(PackageRequest request)
168169

169170
public void UpdatePackage(PackageRequest request)
170171
{
171-
//TODO: Support wildcard
172-
var args = $"tool update {request.Name} --global";
172+
using var powershell = PowerShell.Create(RunspaceMode.CurrentRunspace);
173+
174+
var packages = powershell.AddCommand("Get-Package")
175+
.AddParameter("Provider", ".NET Tool")
176+
.AddCommand("Where-Object")
177+
.AddParameter("Property", "Name")
178+
.AddParameter("Like")
179+
.AddParameter("Value", request.Name)
180+
.Invoke<PackageInfo>();
181+
182+
foreach (var package in packages)
183+
{
184+
InvokeUpdate(request, package.Name);
185+
}
186+
}
187+
188+
private void InvokeUpdate(PackageRequest request, string name)
189+
{
190+
var args = $"tool update {name} --global";
173191

174192
if (request.Version is not null)
175193
{

0 commit comments

Comments
 (0)