Update processing to be more general #26
Merged
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 eval implementation assumes certain forms for input which results in complex strings from the token to be parsed into commands. This is unwanted, as programs can generate quite complicated commands in string form, with different shapes (for safety for ex.) like single-, double- quotes, backticks, and other characters that bash, python and json may interpret/parse differently.
The implementation in this commit changes the bash part to leave the input string intact, and not split it into pieces. Moreover, the shell part of python is changed into default behaviour of subprocess, along with listing the input, which also helps with parsing complex strings properly.
This was tested with string containing escaped characters in nested and nonnested forms, and is more robust:
echo 'Single quote' && echo "Double quote" && echo && echo \Escaped backslash\
echo "this is a test"; echo 'nesting with "double quotes" and
backticks
'(This is probably already parsed and reparsed by the github comments)