gitea-comment
gitea-comment copied to clipboard
Data from file is not escaped for json
As the title says, data from the file are not formatted for json. Any double quotes or backslashes will break the json formatting. I have to do this with sed manually for each logfile.
sed 's/\\\\/\\\\\\\\/g' file.log | sed 's/"/\\\\"/g' > file-out.log
The formatting of sed backslashes is weird because of drone.yml also escapes backslashes.
Complete working escaping step:
- name: Escape json
image: alpine
commands:
- sed 's/\\\\/\\\\\\\\/g' output.log | sed 's/"/\\\\"/g' > output-out.log
I would suggest to use a kind of json escaping library, I do not know if my solution of replacing just \
with \\
and "
with \"
has any edge cases.
@DefinitelyADev would System.Web.HttpUtility.JavaScriptStringEncode be a good solution? It's a one line change that would be very helpful.
I'll take a look at it, sorry I have not been very active. I am preparing v2 that will solve those issues and be more input agnostic. This version of the plugin was made as a necessity for a specific use case.