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