#!/bin/bash # # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ # # Print all values for a JSON property name, among any given JSON via stdin. # JSON could be object, array, nested objects, etc. # # Note that this command redirects stderr to /dev/null, so it might mask errors. # If you get empty results when you expect something there, check the output of the command # before piping to jq-all-vals to verify # # Usage: # # some-command-that-produces-JSON | jq-all-vals prop-name # # prop-name : a property name # SCRIPT="${0}" SCRIPT_DIR="$(cd "$(dirname "${SCRIPT}")" && pwd)" . "${SCRIPT_DIR}"/bubble_common ARG="${1:?no property provided}" jq -r 'getpath(path(.. | select(.'"${ARG}"' != null))) | .'"${ARG}"'' 2> /dev/null