Skip to content

Commit 623d36a

Browse files
edvilmedsplaisted
authored andcommitted
Run tool
1 parent 69cf295 commit 623d36a

File tree

1 file changed

+15
-30
lines changed

1 file changed

+15
-30
lines changed

src/Cli/dotnet/Commands/Tool/Run/ToolRunFromSourceCommand.cs

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Microsoft.DotNet.Cli.ToolManifest;
99
using Microsoft.DotNet.Cli.ToolPackage;
1010
using Microsoft.DotNet.Cli.Utils;
11+
using Microsoft.DotNet.Cli.Utils.Extensions;
1112
using Microsoft.Extensions.EnvironmentAbstractions;
1213
using NuGet.Frameworks;
1314
using NuGet.Packaging;
@@ -35,13 +36,18 @@ public override int Execute()
3536
return 1;
3637
}
3738

39+
if (_allowRollForward)
40+
{
41+
_forwardArguments.Append("--allow-roll-forward");
42+
}
43+
3844
PackageId packageId = new(_toolCommandName);
3945
VersionRange versionRange = _parseResult.GetVersionRange();
4046

4147
string tempDirectory = PathUtilities.CreateTempSubdirectory();
4248

43-
IToolManifestFinder toolManifestFinder = new ToolManifestFinder(new(tempDirectory));
44-
IToolManifestEditor toolManifestEditor = new ToolManifestEditor();
49+
ToolManifestFinder toolManifestFinder = new ToolManifestFinder(new(tempDirectory));
50+
ToolManifestEditor toolManifestEditor = new ToolManifestEditor();
4551
FilePath toolManifestPath = toolManifestFinder.FindFirst(true);
4652

4753
ToolPackageStoreAndQuery toolPackageStoreAndQuery = new(new(tempDirectory));
@@ -56,45 +62,24 @@ public override int Execute()
5662
packageId: packageId,
5763
verbosity: _verbosity,
5864
versionRange: versionRange,
65+
isGlobalToolRollForward: _allowRollForward, // Needed to update .runtimeconfig.json
5966
restoreActionConfig: new(
6067
IgnoreFailedSources: _ignoreFailedSources,
6168
Interactive: _interactive));
6269

63-
LocalToolsResolverCache localToolsResolverCache = new();
64-
localToolsResolverCache.SaveToolPackage(toolPackage, BundledTargetFramework.GetTargetFrameworkMoniker());
65-
66-
toolManifestEditor.Add(
67-
toolManifestPath,
68-
packageId,
69-
toolPackage.Version,
70-
[toolPackage.Command.Name],
71-
rollForward: _allowRollForward);
72-
73-
LocalToolsCommandResolver localToolsCommandResolver = new();
74-
75-
CommandSpec commandSpec = localToolsCommandResolver.ResolveStrict(new()
76-
{
77-
CommandName = $"dotnet-{toolPackage.Command.Name}",
78-
CommandArguments = _forwardArguments,
79-
}, _allowRollForward);
80-
81-
if (commandSpec == null)
82-
{
83-
throw new GracefulException(
84-
string.Format(CliCommandStrings.CannotFindCommandName, _toolCommandName),
85-
isUserError: false);
86-
}
87-
70+
CommandSpec commandSpec = MuxerCommandSpecMaker.CreatePackageCommandSpecUsingMuxer(toolPackage.Command.Executable.ToString(), _forwardArguments);
8871
var command = CommandFactoryUsingResolver.Create(commandSpec);
8972
var result = command.Execute();
90-
9173
return result.ExitCode;
9274
}
75+
9376
private bool UserAgreedToExecuteFromSource()
9477
{
9578
// TODO: Use a better way to ask for user input
96-
Console.WriteLine("Tool will be run from source. Accept? [yn]");
97-
return Console.ReadKey().Key == ConsoleKey.Y;
79+
Console.Write("Tool will be run from source. Accept? [y]".Red());
80+
bool userAccepted = Console.ReadKey().Key == ConsoleKey.Y;
81+
Console.WriteLine();
82+
return userAccepted;
9883
}
9984
}
10085
}

0 commit comments

Comments
 (0)