diff --git a/client/src/docker/lib/internal/lib_docker.bash b/client/src/docker/lib/internal/lib_docker.bash index d83c307..acc2726 100644 --- a/client/src/docker/lib/internal/lib_docker.bash +++ b/client/src/docker/lib/internal/lib_docker.bash @@ -708,16 +708,19 @@ function lib_docker::__version() ;; esac + local -r _yq=("yq" "-M" "-y" "--indentless" "-e") + local -r _sanitize=("sed" "'s:^- ::'" "|" "grep" "-v" "-E" "'(^null\$|\.\.\.)'") + lib_docker::__run " echo '${_manifest}' \\ - | shyaml keys container.${_platform}.${_image} \\ + | $(echo "${_yq[@]}") \".container.${_platform}.\\\"${_image}\\\" | keys\" | sed \"s:^- ::\" \\ | while read _key; do echo -e \\\ncontainer.${_platform}.${_image}.\${_key}: - echo '${_manifest}' | shyaml get-values container.${_platform}.${_image}.\${_key}.packages 2>/dev/null \\ + echo '${_manifest}' | $(echo "${_yq[@]}") .container.${_platform}.\\\"${_image}\\\".\${_key}.packages | $(echo "${_sanitize[@]}") 2>/dev/null \\ | while read _package; do echo -e \\\t\$($_pkg) done - echo '${_manifest}' | shyaml get-values container.${_platform}.${_image}.\${_key}.commands 2>/dev/null \\ + echo '${_manifest}' | $(echo "${_yq[@]}") .container.${_platform}.\\\"${_image}\\\".\${_key}.commands | $(echo "${_sanitize[@]}") 2>/dev/null \\ | while read _command; do echo -e \\\t\$(\$_command) done