Skip to content

Commit 05ef93b

Browse files
committed
Address TODOs
1 parent c8cf912 commit 05ef93b

File tree

6 files changed

+16
-28
lines changed

6 files changed

+16
-28
lines changed

src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommand.cs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,15 @@ internal class ToolExecuteCommand(ParseResult result, ToolManifestFinder? toolMa
3333
private readonly string? _configFile = result.GetValue(ToolExecuteCommandParser.ConfigOption);
3434
private readonly string[] _sources = result.GetValue(ToolExecuteCommandParser.SourceOption) ?? [];
3535
private readonly string[] _addSource = result.GetValue(ToolExecuteCommandParser.AddSourceOption) ?? [];
36-
private readonly bool _ignoreFailedSources = result.GetValue(ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption);
3736
private readonly bool _interactive = result.GetValue(ToolExecuteCommandParser.InteractiveOption);
3837
private readonly VerbosityOptions _verbosity = result.GetValue(ToolExecuteCommandParser.VerbosityOption);
3938
private readonly bool _yes = result.GetValue(ToolExecuteCommandParser.YesOption);
39+
private readonly IToolPackageDownloader _toolPackageDownloader = ToolPackageFactory.CreateToolPackageStoresAndDownloader().downloader;
4040

41-
// TODO: Does result.OptionValuesToBeForwarded work here?
42-
private readonly IToolPackageDownloader _toolPackageDownloader = ToolPackageFactory.CreateToolPackageStoresAndDownloader(
43-
additionalRestoreArguments: result.OptionValuesToBeForwarded(ToolExecuteCommandParser.GetCommand())).downloader;
44-
45-
// TODO: Make sure to add these options to the command
4641
private readonly RestoreActionConfig _restoreActionConfig = new RestoreActionConfig(DisableParallel: result.GetValue(ToolCommandRestorePassThroughOptions.DisableParallelOption),
4742
NoCache: result.GetValue(ToolCommandRestorePassThroughOptions.NoCacheOption) || result.GetValue(ToolCommandRestorePassThroughOptions.NoHttpCacheOption),
4843
IgnoreFailedSources: result.GetValue(ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption),
49-
Interactive: result.GetValue(ToolCommandRestorePassThroughOptions.InteractiveRestoreOption));
44+
Interactive: result.GetValue(ToolExecuteCommandParser.InteractiveOption));
5045

5146
private readonly ToolManifestFinder _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(currentWorkingDirectory ?? Directory.GetCurrentDirectory()));
5247

@@ -92,15 +87,12 @@ public override int Execute()
9287
sourceFeedOverrides: _sources,
9388
additionalFeeds: _addSource);
9489

95-
var restoreActionConfig = new RestoreActionConfig(
96-
IgnoreFailedSources: _ignoreFailedSources,
97-
Interactive: _interactive);
98-
99-
(var bestVersion, var packageSource) = _toolPackageDownloader.GetNuGetVersion(packageLocation, packageId, _verbosity, versionRange, restoreActionConfig);
90+
(var bestVersion, var packageSource) = _toolPackageDownloader.GetNuGetVersion(packageLocation, packageId, _verbosity, versionRange, _restoreActionConfig);
10091

10192
IToolPackage toolPackage;
10293

103-
// TODO: Add framework argument
94+
// TargetFramework is null, which means to use the current framework. Global tools can override the target framework to use (or select assets for),
95+
// but we don't support this for local or one-shot tools.
10496
if (!_toolPackageDownloader.TryGetDownloadedTool(packageId, bestVersion, targetFramework: null, out toolPackage))
10597
{
10698
if (!UserAgreedToRunFromSource(packageId, bestVersion, packageSource))
@@ -132,7 +124,7 @@ public override int Execute()
132124
verbosity: _verbosity,
133125
versionRange: new VersionRange(bestVersion, true, bestVersion, true),
134126
isGlobalToolRollForward: false,
135-
restoreActionConfig: restoreActionConfig);
127+
restoreActionConfig: _restoreActionConfig);
136128
}
137129

138130
var commandSpec = ToolCommandSpecCreator.CreateToolCommandSpec(toolPackage.Command.Name.Value, toolPackage.Command.Executable.Value, toolPackage.Command.Runner, _allowRollForward, _forwardArguments);
@@ -153,8 +145,6 @@ private bool UserAgreedToRunFromSource(PackageId packageId, NuGetVersion version
153145
return false;
154146
}
155147

156-
// TODO: Use a better way to ask for user input
157-
// TODO: How to localize y/n and interpret keys correctly? Does Spectre.Console handle this?
158148
string promptMessage = string.Format(CliCommandStrings.ToolDownloadConfirmationPrompt, packageId, version.ToString(), source.Source);
159149

160150
static string AddPromptOptions(string message)

src/Cli/dotnet/Commands/Tool/Execute/ToolExecuteCommandParser.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ internal static class ToolExecuteCommandParser
2323
public static readonly Option<string> ConfigOption = ToolInstallCommandParser.ConfigOption;
2424
public static readonly Option<string[]> SourceOption = ToolInstallCommandParser.SourceOption;
2525
public static readonly Option<string[]> AddSourceOption = ToolInstallCommandParser.AddSourceOption;
26-
public static readonly Option<bool> IgnoreFailedSourcesOption = ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption;
2726
public static readonly Option<bool> InteractiveOption = CommonOptions.InteractiveOption();
2827
public static readonly Option<bool> YesOption = CommonOptions.YesOption;
2928
public static readonly Option<VerbosityOptions> VerbosityOption = ToolInstallCommandParser.VerbosityOption;
@@ -45,18 +44,19 @@ private static Command ConstructCommand()
4544
command.Arguments.Add(CommandArgument);
4645

4746
command.Options.Add(VersionOption);
47+
command.Options.Add(YesOption);
48+
command.Options.Add(InteractiveOption);
4849
command.Options.Add(RollForwardOption);
4950
command.Options.Add(PrereleaseOption);
5051
command.Options.Add(ConfigOption);
5152
command.Options.Add(SourceOption);
5253
command.Options.Add(AddSourceOption);
53-
command.Options.Add(IgnoreFailedSourcesOption);
54-
command.Options.Add(InteractiveOption);
55-
command.Options.Add(YesOption);
54+
command.Options.Add(ToolCommandRestorePassThroughOptions.DisableParallelOption);
55+
command.Options.Add(ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption);
56+
command.Options.Add(ToolCommandRestorePassThroughOptions.NoCacheOption);
57+
command.Options.Add(ToolCommandRestorePassThroughOptions.NoHttpCacheOption);
5658
command.Options.Add(VerbosityOption);
5759

58-
// TODO: Framework?
59-
6060
command.SetAction((parseResult) => new ToolExecuteCommand(parseResult).Execute());
6161

6262
return command;

src/Cli/dotnet/Commands/Tool/Install/ToolInstallLocalInstaller.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public ToolInstallLocalInstaller(
3939
IToolPackageStoreQuery,
4040
IToolPackageDownloader downloader) toolPackageStoresAndDownloader
4141
= ToolPackageFactory.CreateToolPackageStoresAndDownloader(
42-
additionalRestoreArguments: parseResult.OptionValuesToBeForwarded(ToolInstallCommandParser.GetCommand()), runtimeJsonPathForTests: runtimeJsonPathForTests);
42+
runtimeJsonPathForTests: runtimeJsonPathForTests);
4343
_toolPackageDownloader = toolPackageDownloader ?? toolPackageStoresAndDownloader.downloader;
4444
_restoreActionConfig = restoreActionConfig;
4545

src/Cli/dotnet/Commands/Tool/Restore/ToolRestoreCommand.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ public ToolRestoreCommand(
4343
(IToolPackageStore,
4444
IToolPackageStoreQuery,
4545
IToolPackageDownloader downloader) toolPackageStoresAndInstaller
46-
= ToolPackageFactory.CreateToolPackageStoresAndDownloader(
47-
additionalRestoreArguments: result.OptionValuesToBeForwarded(ToolRestoreCommandParser.GetCommand()));
46+
= ToolPackageFactory.CreateToolPackageStoresAndDownloader();
4847
_toolPackageDownloader = toolPackageStoresAndInstaller.downloader;
4948
}
5049
else

src/Cli/dotnet/Commands/Tool/Update/ToolUpdateLocalCommand.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ public ToolUpdateLocalCommand(
3838
(IToolPackageStore,
3939
IToolPackageStoreQuery,
4040
IToolPackageDownloader downloader) toolPackageStoresAndDownloader
41-
= ToolPackageFactory.CreateToolPackageStoresAndDownloader(
42-
additionalRestoreArguments: parseResult.OptionValuesToBeForwarded(ToolUpdateCommandParser.GetCommand()));
41+
= ToolPackageFactory.CreateToolPackageStoresAndDownloader();
4342
_toolPackageDownloader = toolPackageStoresAndDownloader.downloader;
4443
}
4544
else

src/Cli/dotnet/ToolPackage/ToolPackageFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Microsoft.DotNet.Cli.ToolPackage;
1111
internal static class ToolPackageFactory
1212
{
1313
public static (IToolPackageStore packageStore, IToolPackageStoreQuery packageStoreQuery, IToolPackageDownloader downloader) CreateToolPackageStoresAndDownloader(
14-
DirectoryPath? nonGlobalLocation = null, IEnumerable<string> additionalRestoreArguments = null, string runtimeJsonPathForTests = null)
14+
DirectoryPath? nonGlobalLocation = null, string runtimeJsonPathForTests = null)
1515
{
1616
ToolPackageStoreAndQuery toolPackageStore = CreateConcreteToolPackageStore(nonGlobalLocation);
1717
var toolPackageDownloader = new ToolPackageDownloader(toolPackageStore, runtimeJsonPathForTests);

0 commit comments

Comments
 (0)