From 7f62ce22d8ea5ecbacb117b44524d7839c305fae Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Jan 2024 20:36:32 -0500 Subject: add jq_env and jq_exports as interfaces to export_JSON --- wordpress/export-json.bash | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/wordpress/export-json.bash b/wordpress/export-json.bash index fa1f41e..fd48afe 100644 --- a/wordpress/export-json.bash +++ b/wordpress/export-json.bash @@ -112,23 +112,42 @@ export_JSON_unsafe() ) } -safe_stdout() +safety_pipe() { - set -- "$(mktemp)" "$@" - if (shift; "$@") > "$1" + [ $# -ge 2 ] || return + set -- "$(mktemp)" "$@" || return + if (shift 2; "$@") > "$1" then - set -- "$1" 0 - cat < "$1" + "$2" < "$1" else - set -- "$1" $? + return $? fi - rm "$1" - return $2 } export_JSON() { - safe_stdout export_JSON_unsafe "$@" + safety_pipe env0_to_JSON vars_to_env0 "$@" +} + +filter_vars() +{ + while read + do + if [ -v "$REPLY" ] + then + printf '%s\n' "$REPLY" + fi + done +} + +jq_env() +{ + export_JSON $(compgen -v | filter_vars) | jq "$@" +} + +jq_exports() +{ + export_JSON $(compgen -e | filter_vars) | jq "$@" } try() @@ -146,6 +165,10 @@ runtest() try export_JSON unsetvar SSH_TTY try export_JSON try export_JSON '' - try export_JSON '' SSH_TTY - try export_JSON SSH_TTY '' + try export_JSON 'invalid!' SSH_TTY + try export_JSON SSH_TTY 'invalid!' + try jq_env .unsetvar + emptyvar= try jq_env .emptyvar + try jq_exports '.|{TERM,LANG,HOSTTYPE,EDITOR,SHELL}' + try jq_env '.|{TERM,LANG,HOSTTYPE,EDITOR,SHELL}' } -- cgit v1.2.3