mirror of
https://github.com/libp2p/go-libp2p.git
synced 2025-09-27 04:26:41 +08:00
63 lines
1.6 KiB
Bash
Executable File
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
|