Improve CLI Argument Parsing to Handle Space Separated Values#581
Closed
Alstruit wants to merge 1 commit intoSteamRE:masterfrom
Closed
Improve CLI Argument Parsing to Handle Space Separated Values#581Alstruit wants to merge 1 commit intoSteamRE:masterfrom
Alstruit wants to merge 1 commit intoSteamRE:masterfrom
Conversation
System.ArgumentException occurs when handling space-separated arguments provided as a single string. GetParameterList<T>() function attempts to parse the string of numbers as a UInt32.
xPaw
reviewed
Dec 29, 2024
| var strParam = args[index]; | ||
|
|
||
| // Handle the scenario where we have a single space-separated string of values | ||
| if (strParam.Contains(" ") && !strParam.StartsWith("-")) |
Member
There was a problem hiding this comment.
If args is already split by space, how would this ever hit?
Author
There was a problem hiding this comment.
This is for in case if the arg is enclosed with quotes. Especially if -dir contains spaces.
Member
|
To be honest I would prefer #234 rather than trying to hack in support for this in the current system, but System.CommandLine was kind of abandoned... I've had success using https://github.com/Cysharp/ConsoleAppFramework |
Author
|
I agree that this appears to be hacky. To be fair this only happens if one of the arguments is enclosed with quotes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The original implementation assumed each argument would contain at most one value, which could cause exceptions when attempting to parse multiple values (e.g., -depot "11 12 13") into numeric types.
The code also checks if the TypeConverter for the given type T is available and logs a warning if it’s not, preventing potential null-reference issues.
It stops parsing values once it encounters a new parameter which is consistent with typical CLI usage patterns.