Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Echo json #5215

Closed
wants to merge 2 commits into from
Closed

Echo json #5215

wants to merge 2 commits into from

Conversation

web-sst
Copy link

@web-sst web-sst commented Aug 12, 2024

Add -quoting json option to echo. This converts each argument to a json string and joins on newline. It supports this, for example:

echo -quoting json -to-shell-script 'jq -n "[inputs] ..."' %val{selections}

A script can obtain potentially large sets of strings, like selections, as input rather than environment.

Format each argument as a json string and join on newline
I dedicate any and all copyright interest in this software to the
public domain.  I make this dedication for the benefit of the public at
large and to the detriment of my heirs and successors.  I intend this
dedication to be an overt act of relinquishment in perpetuity of all
present and future rights to this software under copyright law.
@web-sst
Copy link
Author

web-sst commented Aug 12, 2024

A coincident merge makes this PR conflict with src/string_utils.hh. In addition, json.hh now includes string_utils.hh, complicating my changes. I think the way to fix is to break out a quoting.hh from string_utils.hh, but I'd appreciate guidance from someone more familiar with the code.

@web-sst web-sst closed this Aug 13, 2024
@mawww
Copy link
Owner

mawww commented Aug 14, 2024

I am not sure how much value json quoting has in the first place as we still only emit a list of strings. I would like to see a use case where using the existing mechanisms is much more cumbersome before adding this.

You can, for example, trivially get the list of strings in "$@" with echo -quoting shell -to-shell-script 'set -- $(cat); ...'

@web-sst
Copy link
Author

web-sst commented Aug 14, 2024

I just opened an updated PR (#5217) that is compatible with current master. I'll respond over there.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants