Skip to content

Commit 2f27844

Browse files
edvilmedsplaisted
authored andcommitted
Execute tool
1 parent a36b14b commit 2f27844

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/Cli/dotnet/Commands/Tool/Runx/ToolRunxCommand.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ namespace Microsoft.DotNet.Cli.Commands.Tool.Runx;
1414
internal class ToolRunxCommand(ParseResult result) : CommandBase(result)
1515
{
1616
private readonly string _toolCommandName = result.GetValue(ToolRunxCommandParser.CommandNameArgument);
17+
private readonly IEnumerable<string> _toolArguments = result.GetValue(ToolRunxCommandParser.CommandArgument);
1718

1819
public override int Execute()
1920
{
20-
PackageLocation packageLocation = new PackageLocation();
2121
PackageId packageId = new PackageId(_toolCommandName);
2222

2323
var tempDir = new DirectoryPath(PathUtilities.CreateTempSubdirectory());
@@ -28,17 +28,18 @@ public override int Execute()
2828
ToolPackageDownloader toolPackageDownloader = new ToolPackageDownloader(toolPackageStoreAndQuery);
2929
ToolPackageUninstaller toolPackageUninstaller = new ToolPackageUninstaller(toolPackageStoreAndQuery);
3030

31-
IToolPackage toolPackage = toolPackageStoreAndQuery.EnumeratePackageVersions(packageId).FirstOrDefault()
32-
?? toolPackageDownloader.InstallPackage(packageLocation, packageId);
31+
PackageLocation packageLocation = new PackageLocation(rootConfigDirectory: toolPackageStoreAndQuery.Root);
32+
33+
IToolPackage toolPackage = toolPackageDownloader.InstallPackage(packageLocation, packageId, isGlobalTool: true);
3334

3435
// Run package
3536

36-
DotnetToolsCommandResolver dotnetToolsCommandResolver = new DotnetToolsCommandResolver(toolPackageStoreAndQuery.Root.ToString());
37+
DotnetToolsCommandResolver dotnetToolsCommandResolver = new DotnetToolsCommandResolver(toolPackage.PackageDirectory.Value);
3738
CommandSpec commandSpec = dotnetToolsCommandResolver.Resolve(new CommandResolverArguments()
3839
{
3940
// since LocalToolsCommandResolver is a resolver, and all resolver input have dotnet-
40-
CommandName = $"dotnet-{_toolCommandName}",
41-
CommandArguments = new string[] { },
41+
CommandName = _toolCommandName.StartsWith("dotnet-") ? _toolCommandName : $"dotnet-{_toolCommandName}",
42+
CommandArguments = _toolArguments,
4243
});
4344

4445
var result = CommandFactoryUsingResolver.Create(commandSpec).Execute();

0 commit comments

Comments
 (0)