084da66a795a:~$ file /usr/local/bin/vault-wrapper
bash: file: command not found
084da66a795a:~$ ls -lah /usr/local/bin/vault-wrapper
-rwxrwxrwx 1 root root 1.1K Jun 4 07:09 /usr/local/bin/vault-wrapper
084da66a795a:~$ head -100 /usr/local/bin/vault-wrapper
#!/usr/bin/env bash
set -euo pipefail
## https://stackoverflow.com/a/59592881
# SYNTAX:
# catch STDOUT_VARIABLE STDERR_VARIABLE COMMAND
catch() {
set +e
{
_ERRNO_=
IFS=$'\n' read -r -d '' "${1}";
IFS=$'\n' read -r -d '' "${2}";
(IFS=$'\n' read -r -d '' _ERRNO_; return ${_ERRNO_});
} < <((printf '\0%s\0%d\0' "$(((({ ${3}; echo "${?}" 1>&3-; } | tr -d '\0' 1>&4-) 4>&2- 2>&1- | tr -d '\0' 1>&4-) 3>&1- | exit "$(cat)") 4>&1-)" "${?}" 1>&2) 2>&1)
}
VAULT_SECRET="$1"
if [ -z "$VAULT_SECRET" ]; then
echo "error: please provide path to vault secret"
exit 10
fi
VAULT_STDOUT=
VAULT_STDERR=
catch VAULT_STDOUT VAULT_STDERR "vault kv get -format=json $VAULT_SECRET"
VAULT_RC=$?
VAULT_DATA_RAW=
if [ $VAULT_RC -ne 0 ]; then
if [[ "$VAULT_STDERR" == "No value found at"* ]]; then
VAULT_DATA_RAW='{ "data": { "data": {} } }'
VAULT_RC=0
fi
echo "$VAULT_STDERR" 1>&2
else
VAULT_DATA_RAW="$VAULT_STDOUT"
fi
printf "%s" "$VAULT_DATA_RAW" | yq eval -M '.data.data' -
YQ_RC=$?
[ $VAULT_RC -ne 0 ] && exit $VAULT_RC
exit $YQ_RC
084da66a795a:~$