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

     1  #!/bin/bash
     2  set -eux -o pipefail
     3  
     4  PROJECT_ROOT=$(cd $(dirname ${BASH_SOURCE})/../..; 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}_${OS}_${ARCHITECTURE}.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  cp /tmp/protoc-${protoc_version}/bin/protoc ${DIST_PATH}/protoc
    45  chmod +x ${DIST_PATH}/protoc
    46  cp -a /tmp/protoc-${protoc_version}/include/* ${DIST_PATH}/protoc-include
    47  chmod -R +rx ${DIST_PATH}/protoc-include
    48  protoc --version