Files
go-libp2p/scripts/print-protoc-hashes.sh

63 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eou pipefail
# Specify the protobuf release version
PROTOBUF_VERSION="29.2"
# Define the platforms
PLATFORMS=("linux-x86_64" "linux-aarch64" "darwin-aarch64")
# Array to store the hashes
declare -A HASHES
# Function to download and calculate the SHA-256 hash
calculate_hash() {
local platform=$1
local protoc_zip
case "${platform}" in
linux-x86_64)
protoc_zip="protoc-${PROTOBUF_VERSION}-linux-x86_64.zip"
;;
linux-aarch64)
protoc_zip="protoc-${PROTOBUF_VERSION}-linux-aarch64.zip"
;;
darwin-aarch64)
protoc_zip="protoc-${PROTOBUF_VERSION}-osx-aarch_64.zip"
;;
*)
echo "Unsupported platform: ${platform}"
exit 1
;;
esac
# Download the specified version of protobuf
download_url="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_VERSION}/${protoc_zip}"
echo "Downloading from: ${download_url}"
curl -LO "${download_url}"
# Calculate the SHA-256 hash
if command -v shasum >/dev/null 2>&1; then
sha256_hash=$(shasum -a 256 "${protoc_zip}" | cut -d' ' -f1)
else
sha256_hash=$(sha256sum "${protoc_zip}" | cut -d' ' -f1)
fi
# Store the hash in the array
HASHES["${platform}"]="${sha256_hash}"
# Clean up the zip file
rm "${protoc_zip}"
}
# Iterate over the platforms and calculate the hashes
for platform in "${PLATFORMS[@]}"; do
calculate_hash "${platform}"
done
# Print all the hashes together at the end
echo "Expected SHA-256 hashes for protobuf ${PROTOBUF_VERSION}:"
for platform in "${!HASHES[@]}"; do
echo "[\"${platform}\"]=\"${HASHES[${platform}]}\""
done