github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/contrib/imgts/lib_entrypoint.sh (about) 1 #!/bin/bash 2 3 set -e 4 5 RED="\e[1;36;41m" 6 YEL="\e[1;33;44m" 7 NOR="\e[0m" 8 SENTINEL="__unknown__" # default set in dockerfile 9 # Disable all input prompts 10 # https://cloud.google.com/sdk/docs/scripting-gcloud 11 GCLOUD="gcloud --quiet" 12 13 die() { 14 EXIT=$1 15 PFX=$2 16 shift 2 17 MSG="$@" 18 echo -e "${RED}${PFX}:${NOR} ${YEL}$MSG${NOR}" 19 [[ "$EXIT" -eq "0" ]] || exit "$EXIT" 20 } 21 22 # Pass in a list of one or more envariable names; exit non-zero with 23 # helpful error message if any value is empty 24 req_env_var() { 25 for i; do 26 if [[ -z "${!i}" ]] 27 then 28 die 1 FATAL entrypoint.sh requires \$$i to be non-empty. 29 elif [[ "${!i}" == "$SENTINEL" ]] 30 then 31 die 2 FATAL entrypoint.sh requires \$$i to be explicitly set. 32 fi 33 done 34 } 35 36 gcloud_init() { 37 set +xe 38 if [[ -n "$1" ]] && [[ -r "$1" ]] 39 then 40 TMPF="$1" 41 else 42 TMPF=$(mktemp -p '' .$(uuidgen)_XXXX.json) 43 trap "rm -f $TMPF &> /dev/null" EXIT 44 echo "$GCPJSON" > $TMPF 45 fi 46 $GCLOUD auth activate-service-account --project="$GCPPROJECT" --key-file="$TMPF" || \ 47 die 5 FATAL auth 48 rm -f $TMPF &> /dev/null || true # ignore any read-only error 49 }