summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@vps-18a7a2b7.vps.ovh.ca>2024-01-24 20:36:32 -0500
committerroot <root@vps-18a7a2b7.vps.ovh.ca>2024-01-24 20:36:32 -0500
commit7f62ce22d8ea5ecbacb117b44524d7839c305fae (patch)
treeb76fde7433af93d97a87faea2ac3395464554b3b
parentccd9ffb85800be3614be7a4d6ed36013982dc2ed (diff)
add jq_env and jq_exports as interfaces to export_JSON
-rw-r--r--wordpress/export-json.bash45
1 files 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()
112 ) 112 )
113} 113}
114 114
115safe_stdout() 115safety_pipe()
116{ 116{
117 set -- "$(mktemp)" "$@" 117 [ $# -ge 2 ] || return
118 if (shift; "$@") > "$1" 118 set -- "$(mktemp)" "$@" || return
119 if (shift 2; "$@") > "$1"
119 then 120 then
120 set -- "$1" 0 121 "$2" < "$1"
121 cat < "$1"
122 else 122 else
123 set -- "$1" $? 123 return $?
124 fi 124 fi
125 rm "$1"
126 return $2
127} 125}
128 126
129export_JSON() 127export_JSON()
130{ 128{
131 safe_stdout export_JSON_unsafe "$@" 129 safety_pipe env0_to_JSON vars_to_env0 "$@"
130}
131
132filter_vars()
133{
134 while read
135 do
136 if [ -v "$REPLY" ]
137 then
138 printf '%s\n' "$REPLY"
139 fi
140 done
141}
142
143jq_env()
144{
145 export_JSON $(compgen -v | filter_vars) | jq "$@"
146}
147
148jq_exports()
149{
150 export_JSON $(compgen -e | filter_vars) | jq "$@"
132} 151}
133 152
134try() 153try()
@@ -146,6 +165,10 @@ runtest()
146 try export_JSON unsetvar SSH_TTY 165 try export_JSON unsetvar SSH_TTY
147 try export_JSON 166 try export_JSON
148 try export_JSON '' 167 try export_JSON ''
149 try export_JSON '' SSH_TTY 168 try export_JSON 'invalid!' SSH_TTY
150 try export_JSON SSH_TTY '' 169 try export_JSON SSH_TTY 'invalid!'
170 try jq_env .unsetvar
171 emptyvar= try jq_env .emptyvar
172 try jq_exports '.|{TERM,LANG,HOSTTYPE,EDITOR,SHELL}'
173 try jq_env '.|{TERM,LANG,HOSTTYPE,EDITOR,SHELL}'
151} 174}