Squashed 'third_party/bazel-toolchain/' content from commit a912bb381

Change-Id: Ie1ff8ed3b3948cca1d1b6227097c95e5a048de86
git-subtree-dir: third_party/bazel-toolchain
git-subtree-split: a912bb381b36437be0eeb22de11f0ea198450b4e
Signed-off-by: Brian Silverman <bsilver16834@gmail.com>
diff --git a/utils/llvm_checksums.sh b/utils/llvm_checksums.sh
new file mode 100755
index 0000000..79c5383
--- /dev/null
+++ b/utils/llvm_checksums.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+set -euo pipefail
+
+use_github_host=0
+
+while getopts "v:gh" opt; do
+  case "$opt" in
+    "v") llvm_version="$OPTARG";;
+    "g") use_github_host=1;;
+    "h") echo "Usage:"
+       echo "-v - Version of clang+llvm to use"
+       echo "-g - Use github to download releases"
+       exit 2
+       ;;
+    "?") echo "invalid option: -$OPTARG"; exit 1;;
+  esac
+done
+
+if ! [[ "${llvm_version:-}" ]]; then
+  echo "Usage: ${BASH_SOURCE[0]} -v llvm_version"
+  exit 1
+fi
+
+tmp_dir="$(mktemp -d)"
+
+cleanup() {
+  rc=$?
+  rm -rf "${tmp_dir}"
+  exit $rc
+}
+trap 'cleanup' INT HUP QUIT TERM EXIT
+
+llvm_host() {
+  local url_base="releases.llvm.org/${llvm_version}"
+  output_dir="${tmp_dir}/${url_base}"
+  wget --compression gzip --recursive --level 1 --directory-prefix="${tmp_dir}" \
+    --accept-regex "clang%2bllvm.*tar.xz$" "http://${url_base}/"
+}
+
+github_host() {
+  output_dir="${tmp_dir}"
+  (
+  cd "${output_dir}"
+  curl -s "https://api.github.com/repos/llvm/llvm-project/releases/tags/llvmorg-${llvm_version}" | \
+    jq .assets[].browser_download_url | \
+    tee ./urls.txt | \
+    grep 'clang%2Bllvm.*tar.xz"$' | \
+    tee ./filtered_urls.txt | \
+    xargs -n1 curl -L -O
+  )
+}
+
+if (( use_github_host )); then
+  github_host
+else
+  llvm_host
+fi
+
+echo ""
+echo "===="
+echo "Checksums for clang+llvm distributions are:"
+find "${output_dir}" -type f -name '*.xz' -exec shasum -a 256 {} \; | \
+  sed -e "s@${output_dir}/@@" | \
+  awk '{ printf "\"%s\": \"%s\",\n", $2, $1 }'