Skip to content

Commit ccdcde4

Browse files
authored
Fix ToolPath on DotnetToolUpdateOptions (#583)
1 parent fa2a3f6 commit ccdcde4

File tree

9 files changed

+79
-19
lines changed

9 files changed

+79
-19
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Fix ToolPath on DotnetToolUpdateOptions

src/ModularPipelines.DotNet/Options/DotNetToolInstallOptions.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ string path
1515

1616
PackageName = packageName;
1717

18-
Path = path;
18+
ToolPath = path;
1919
}
2020

2121
public DotNetToolInstallOptions(
@@ -70,10 +70,7 @@ string packageName
7070
public string? VersionNumber { get; set; }
7171

7272
[BooleanCommandSwitch("--tool-path")]
73-
public bool? ToolPath { get; set; }
74-
75-
[PositionalArgument(PlaceholderName = "<PATH>")]
76-
public string? Path { get; set; }
73+
public string? ToolPath { get; set; }
7774

7875
[BooleanCommandSwitch("--local")]
7976
public bool? Local { get; set; }

src/ModularPipelines.DotNet/Options/DotNetToolUninstallOptions.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ string path
1515

1616
PackageName = packageName;
1717

18-
Path = path;
18+
ToolPath = path;
1919
}
2020

2121
public DotNetToolUninstallOptions(
@@ -34,10 +34,7 @@ string packageName
3434
public bool? Global { get; set; }
3535

3636
[BooleanCommandSwitch("--tool-path")]
37-
public bool? ToolPath { get; set; }
38-
39-
[PositionalArgument(PlaceholderName = "<PATH>")]
40-
public string? Path { get; set; }
37+
public string? ToolPath { get; set; }
4138

4239
[CommandSwitch("--tool-manifest")]
4340
public string? ToolManifest { get; set; }

src/ModularPipelines.DotNet/Options/DotNetToolUpdateOptions.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@ public record DotNetToolUpdateOptions : DotNetOptions
88
{
99
public DotNetToolUpdateOptions(
1010
string packageId,
11-
string path
11+
string toolPath
1212
)
1313
{
1414
CommandParts = ["tool", "update", "<PACKAGE_ID>"];
1515

1616
PackageId = packageId;
17-
18-
Path = path;
17+
ToolPath = toolPath;
1918
}
2019

2120
public DotNetToolUpdateOptions(
@@ -64,10 +63,7 @@ string packageId
6463
public string? Version { get; set; }
6564

6665
[BooleanCommandSwitch("--tool-path")]
67-
public bool? ToolPath { get; set; }
68-
69-
[PositionalArgument(PlaceholderName = "<PATH>")]
70-
public string? Path { get; set; }
66+
public string? ToolPath { get; set; }
7167

7268
[BooleanCommandSwitch("--local")]
7369
public bool? Local { get; set; }

src/ModularPipelines/Context/Command.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public async Task<CommandResult> ExecuteCommandLineTool(CommandLineToolOptions o
4747
tool = options.Tool;
4848
}
4949

50-
var command = Cli.Wrap(tool).WithArguments(parsedArgs);
50+
var command = Cli.Wrap(tool).WithArguments(SantiseArguments(parsedArgs));
5151

5252
if (options.WorkingDirectory != null)
5353
{
@@ -76,6 +76,13 @@ public async Task<CommandResult> ExecuteCommandLineTool(CommandLineToolOptions o
7676
return await Of(command, options, cancellationToken);
7777
}
7878

79+
private List<string> SantiseArguments(List<string> parsedArgs)
80+
{
81+
parsedArgs.RemoveAll(x => x.StartsWith("<"));
82+
83+
return parsedArgs;
84+
}
85+
7986
private static List<string> GetPrecedingArguments(object optionsObject)
8087
{
8188
if (optionsObject is CommandLineToolOptions { CommandParts: not null } commandLineToolOptions)

src/ModularPipelines/Helpers/CommandOptionsObjectArgumentParser.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,17 @@ private static void AddPlaceholderArguments(List<string> precedingArguments, obj
6161
throw new ArgumentException($"No value provided for property {positionalPlaceholderArgument.Name}");
6262
}
6363

64-
if (string.IsNullOrWhiteSpace(value))
64+
if (string.IsNullOrWhiteSpace(value) && indexOfMatchingPrecedingArgumentPlaceholder >= 0)
6565
{
6666
precedingArguments.RemoveAt(indexOfMatchingPrecedingArgumentPlaceholder);
6767
return;
6868
}
6969

70+
if (string.IsNullOrWhiteSpace(value))
71+
{
72+
return;
73+
}
74+
7075
precedingArguments[indexOfMatchingPrecedingArgumentPlaceholder] = value;
7176
}
7277
}

test/ModularPipelines.Azure.UnitTests/.idea/.idea.ModularPipelines.Azure.dir/.idea/indexLayout.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/ModularPipelines.Azure.UnitTests/.idea/.idea.ModularPipelines.Azure.dir/.idea/projectSettingsUpdater.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/ModularPipelines.Azure.UnitTests/.idea/.idea.ModularPipelines.Azure.dir/.idea/workspace.xml

Lines changed: 43 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)