Skip to content

Instantly share code, notes, and snippets.

@alexeagle
Created November 22, 2022 14:16
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexeagle/041f116ecb576aed7bc87c44120a0c9c to your computer and use it in GitHub Desktop.
Save alexeagle/041f116ecb576aed7bc87c44120a0c9c to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -o errexit -o nounset -o pipefail
# Bash installation script for https://github.com/choffmeister/git-describe-semver utility
# for use in --workspace_status command. We can't carry a bazel run dependency on this tool
# since we need to use it in --workspace_status.
git_describe_semver_url_base="https://github.com/choffmeister/git-describe-semver/releases/download"
git_describe_semver_version=0.3.9
os=$(uname -s)
readonly os
arch=$(uname -m)
readonly arch
case "$os" in
Darwin*)
case "$arch" in
x86_64*)
url="${git_describe_semver_url_base}/v${git_describe_semver_version}/git-describe-semver_${git_describe_semver_version}_darwin_amd64.tar.gz"
;;
arm64*)
url="${git_describe_semver_url_base}/v${git_describe_semver_version}/git-describe-semver_${git_describe_semver_version}_darwin_arm64.tar.gz"
;;
*)
echo "Unsupported Darwin arch"
exit 1
;;
esac
;;
Linux*)
case "$arch" in
x86_64*)
url="${git_describe_semver_url_base}/v${git_describe_semver_version}/git-describe-semver_${git_describe_semver_version}_linux_amd64.tar.gz"
;;
arm64*)
url="${git_describe_semver_url_base}/v${git_describe_semver_version}/git-describe-semver_${git_describe_semver_version}_linux_arm64.tar.gz"
;;
*)
echo "Unsupported Linux arch"
exit 1
;;
esac
;;
*)
echo "Unsupported OS"
exit 1
;;
esac
cache_dir="$(cd $(dirname "$0"); pwd)/.cache/git-describe-semver-v${git_describe_semver_version}"
readonly cache_dir
mkdir -p "$cache_dir"
git_describe_semver_tarball="$cache_dir/git-describe-semver.tar.gz"
git_describe_semver_binary="$cache_dir/git-describe-semver"
if [ ! -f "$git_describe_semver_tarball" ]; then
rm -f "$git_describe_semver_binary"
curl -L "$url" -o "$git_describe_semver_tarball" 2> /dev/null
fi
if [ ! -f "$git_describe_semver_binary" ]; then
tar -xf "$git_describe_semver_tarball" -C "$cache_dir"
fi
exec "$cache_dir/git-describe-semver" "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment