diff options
Diffstat (limited to 'wordpress/export-json.bash')
-rw-r--r-- | wordpress/export-json.bash | 32 |
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 | ||
97 | to_JSON() | 97 | to_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" ] && |