blob: a0ff31d1561b0087507d1d09a7892a547aea0bb1 [file]
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 1 ]]; then
echo "Usage: $0 <version>"
exit 1
fi
readonly version="$1"
assets=()
for binary in buildifier buildozer; do
for os in darwin linux windows; do
for arch in amd64 arm64 riscv64 s390x; do
filename=$binary-$os-$arch
if [[ "$os" == "windows" ]]; then
if [[ "$arch" == "arm64" || "$arch" == "riscv64" ]]; then
continue
fi
filename="$filename.exe"
fi
if [[ "$os" == "darwin" && "$arch" == "riscv64" ]]; then
continue
fi
if [[ "$os" != "linux" && "$arch" == "s390x" ]]; then
continue
fi
# Skip versions prior to 8.2.0 for riscv64 and s390x
if [[ ("$arch" == "riscv64" || "$arch" == "s390x") && $(printf '%s\n' "$version" "8.2.0" | sort -V | head -n1) == "$version" ]] && [[ "$version" != "8.2.0" ]]; then
continue
fi
url=https://github.com/bazelbuild/buildtools/releases/download/$version/$filename
bin=$(mktemp)
if ! curl --fail -L "$url" -o "$bin"; then
echo "error: failed to download $url"
exit 1
fi
sha=$(shasum -a 256 "$bin" | cut -d ' ' -f 1)
assets+=(" \"${binary}_${os}_${arch}\": \"$sha\",")
done
done
done
cat <<-EOF
load("@buildifier_prebuilt//:defs.bzl", "buildifier_prebuilt_register_toolchains", "buildtools_assets")
buildifier_prebuilt_register_toolchains(
assets = buildtools_assets(
version = "$version",
names = ["buildifier", "buildozer"],
platforms = ["darwin", "linux", "windows"],
arches = ["amd64", "arm64", "riscv64", "s390x"],
sha256_values = {
$(printf '%s\n' "${assets[@]}")
},
),
)
EOF