blob: 95a3ed599321d8ac2509fd1f47f686dd4d49b293 [file] [log] [blame]
#!/bin/bash
set -e
OUTPUT_DIR=$1/bin
VERSION="3.20.0"
PROTOC=${OUTPUT_DIR}/protoc
WKT_DIR=${1}/protos/google/protobuf
if [ "${OS}" == "darwin" ]; then
OS="osx"
fi
if [ "${ARCH}" == "amd64" ]; then
ARCH="x86_64"
elif [ "${ARCH}" == "arm64" ]; then
ARCH="aarch_64"
fi
VERSION_NAME=protoc-${VERSION}-${OS}-${ARCH}
if [ -e "$PROTOC" ] && [ -e "$WKT_DIR" ] && [ "v$("$PROTOC" --version | cut -f2 -d ' ')" == "v${VERSION}" ]; then
echo "$($PROTOC --version) is already installed at ${OUTPUT_DIR}"
exit
fi
echo "Installing Protoc ${PROTOC} ${VERSION} ..."
rm -rf "${PROTOC}"
rm -rf "${WKT_DIR}"
set -x
mkdir -p /tmp/${VERSION_NAME}
curl --location --fail -s -o /tmp/${VERSION_NAME}.zip https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/${VERSION_NAME}.zip
unzip /tmp/${VERSION_NAME}.zip bin/protoc 'include/*' -d /tmp/${VERSION_NAME}
cp /tmp/"${VERSION_NAME}"/bin/protoc "${PROTOC}"
mkdir -p "${WKT_DIR}"
cp -r /tmp/"${VERSION_NAME}"/include/google/protobuf/* "${WKT_DIR}"
rm -rf /tmp/"${VERSION_NAME}"*
set +x
echo "Protoc ${VERSION} has been installed at ${PROTOC}" ;