github.com/argoproj/argo-cd/v3@v3.2.1/hack/installers/install-protoc.sh (about)

     1  #!/bin/bash
     2  set -eux -o pipefail
     3  
     4  PROJECT_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")"/../..; pwd)
     5  DIST_PATH="${PROJECT_ROOT}/dist"
     6  PATH="${DIST_PATH}:${PATH}"
     7  
     8  . "$(dirname "$0")"/../tool-versions.sh
     9  
    10  OS=$(go env GOOS)
    11  case $OS in
    12    darwin)
    13      # For macOS, the x86_64 binary is used even on Apple Silicon (it is run through rosetta), so
    14      # we download and install the x86_64 version. See: https://github.com/protocolbuffers/protobuf/pull/8557
    15      protoc_os=osx
    16      protoc_arch=x86_64
    17      ;;
    18    *)
    19      protoc_os=linux
    20      case $ARCHITECTURE in
    21        arm64|arm)
    22          protoc_arch=aarch_64
    23          ;;
    24        s390x)
    25          protoc_arch=s390_64
    26          ;;
    27        ppc64le)
    28          protoc_arch=ppcle_64
    29          ;;
    30        *)
    31          protoc_arch=x86_64
    32          ;;
    33      esac
    34      ;;
    35  esac
    36  
    37  export TARGET_FILE="protoc-${protoc_version}-${protoc_os}-${protoc_arch}.zip"
    38  url="https://github.com/protocolbuffers/protobuf/releases/download/v${protoc_version}/protoc-${protoc_version}-${protoc_os}-${protoc_arch}.zip"
    39  [ -e "$DOWNLOADS/${TARGET_FILE}" ] || curl -sLf --retry 3 -o "$DOWNLOADS/${TARGET_FILE}" "${url}"
    40  "$(dirname "$0")"/compare-chksum.sh
    41  mkdir -p "/tmp/protoc-${protoc_version}"
    42  unzip -o "$DOWNLOADS/${TARGET_FILE}" -d "/tmp/protoc-${protoc_version}"
    43  mkdir -p "${DIST_PATH}/protoc-include"
    44  sudo install -m 0755 "/tmp/protoc-${protoc_version}/bin/protoc" "${DIST_PATH}/protoc"
    45  (
    46      cd "/tmp/protoc-${protoc_version}/include/"
    47      find -- * -type d -exec install -m 0755 -d "${DIST_PATH}/protoc-include/{}" \;
    48  )
    49  (
    50      cd "/tmp/protoc-${protoc_version}/include/"
    51      find -- * -type f -exec install -m 0644 "/tmp/protoc-${protoc_version}/include/{}" "${DIST_PATH}/protoc-include/{}" \;
    52  )
    53  protoc --version