summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wordpress/export-json.bash32
1 files changed, 28 insertions, 4 deletions
diff --git a/wordpress/export-json.bash b/wordpress/export-json.bash
index 82a39b8..da6f500 100644
--- a/wordpress/export-json.bash
+++ b/wordpress/export-json.bash
@@ -96,19 +96,43 @@ export_to_env0()
96 96
97to_JSON() 97to_JSON()
98{ 98{
99 case "$1" in
100 -A | -a )
101 (
102 if [ "$1" = '-a' ]
103 then
104 jq_env
105 fi
106 set -- $(compgen -A arrayvar)
107 while [ $# -gt 0 ]
108 do
109 to_JSON "$1"
110 shift
111 done
112 ) |
113 jq -s 'add'
114 return
115 ;;
116 esac
99 [ $# = 1 ] || return 117 [ $# = 1 ] || return
100 case "${!1@a}" in 118 case "${!1@a}" in
101 *a* ) 119 *a* )
102 ( 120 (
103 eval "set -- \${${1}[@]}" && 121 eval "set -- \"\$1\" --args \"\${${1}[@]}\"" &&
104 jq -n '$ARGS.positional' --args "$@" 122 jq -n '{ ($v): $ARGS.positional }' \
123 --arg v "$@"
105 ) 124 )
106 ;; 125 ;;
107 *A* ) 126 *A* )
108 ( 127 (
109 eval "set -- \"\${!${1}[@]}\" \"\${${1}[@]}\"" && 128 eval "set -- \"\${!${1}[@]}\" \"\${${1}[@]}\"" &&
110 jq -n "$(jq_zip2)" --args "$@" 129 if [ $# -eq 0 ]
111 ) 130 then
131 jq -n '{}'
132 else
133 jq -n "$(jq_zip2)" --args "$@"
134 fi
135 ) | jq '{ ($v): . }' --arg v "$1"
112 ;; 136 ;;
113 * ) 137 * )
114 [ -v "$1" ] && 138 [ -v "$1" ] &&