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  }