Retain string characters if add'l argument has spaces #2551
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.
Summary
Consider the instance where you're using optional arguments with
yarn run
, and one of these arguments is a string that contains spaces. At the moment, using the rawprocess.argv
to obtain these arguments strips the individual arguments of any string separators. Since these arguments are then used in another command, their original intent is lost.Examples of this problem, as run on the yarn repo itself:
In the above, the command defined in
build
interprets| init
as a bash command. This is not the intent."run | init"
should be maintained as a single argument.Test plan
To fix this, this PR sanitizes the optional arguments used in
execCommand
for therun
command. It wraps any argument in"
characters if the argument value itself contains a string character.Not that those arguments would be valid for that command, but one can see that the arguments are passed correctly to whatever internal script is specified.