#!/usr/bin/env bash set -eo pipefail set -x # When run by goreleaser, the arguments are absent, so files are installed in: # # * ./bin/darwin-x64 # * ./bin/darwin-arm64 # * ./bin/linux-x64 # * ./bin/linux-arm64 # * ./bin/windows-x64 # # Allowing us to customize the archives for each. LOCAL="${1:-"false"}" TAG="v0.1.4" for i in \ "darwin-x64 x86_64-apple-darwin tar.gz" \ "darwin-arm64 aarch64-apple-darwin tar.gz" \ "linux-x64 x86_64-unknown-linux-gnu tar.gz" \ "linux-arm64 aarch64-unknown-linux-gnu tar.gz" \ "windows-x64 x86_64-pc-windows-msvc zip"; do # Windows is synonymous with ".exe" as well set -- $i # read loop strings as args TARGET="$1" FILE="$2" EXT="$3" GO_TARGET="${TARGET/x64/amd64}" DIST_DIR="./bin/${TARGET}" if [ "${LOCAL}" = "local" ] && [ "$(go env GOOS)-$(go env GOARCH)" != "${GO_TARGET}" ]; then continue fi mkdir -p "${DIST_DIR}" FILENAME="pulumi-watch-${TAG}-${FILE}.${EXT}" OUTDIR="$(mktemp -d)" case "${EXT}" in "tar.gz") curl -OL --fail "https://github.com/pulumi/watchutil-rs/releases/download/${TAG}/${FILENAME}" tar -xzvf "${FILENAME}" --strip-components=1 -C "${OUTDIR}" mv "${OUTDIR}/pulumi-watch" "${DIST_DIR}" rm "${FILENAME}" ;; "zip") curl -OL --fail "https://github.com/pulumi/watchutil-rs/releases/download/${TAG}/${FILENAME}" unzip -j "${FILENAME}" -d "${OUTDIR}" mv "${OUTDIR}/pulumi-watch.exe" "${DIST_DIR}" rm "${FILENAME}" ;; *) exit ;; esac done