You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
1.2 KiB

#!/usr/bin/env bash
TERRAFORM_BIN_PATH="${TERRAFORM_BIN_PATH:-$HOME/.terraform}";
TERRAFORM_VERSION=${TERRAFORM_VERSION:-"0.13.5"}
platform='unknown'
platform_uname=$(uname)
if [[ "$platform_uname" == 'Linux' ]]; then
platform='linux'
elif [[ "$platform_uname" == 'FreeBSD' ]]; then
platform='freebsd'
elif [[ "$platform_uname" == 'Darwin' ]]; then
platform='darwin'
else
echo "[$platform_uname] is not recognized as a valid platform"
exit 1
fi
arch="unknown"
arch_uname=$(uname -m)
if [[ "$arch_uname" == 'x86_64' ]]; then
arch='amd64'
elif [[ "$arch_uname" == 'i686' ]]; then
arch='386'
else
echo "[$arch_uname] is not recognized as a valid arch"
exit 1
fi
TERRAFORM_URL="https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_${platform}_${arch}".zip
TERRAFORM_PATH="$TERRAFORM_BIN_PATH/$TERRAFORM_VERSION"
TERRAFORM_CMD="$TERRAFORM_PATH/terraform"
if ! type "$TERRAFORM_CMD" > /dev/null 2>&1; then
if [ ! -f "$TERRAFORM_PATH.zip" ]; then
echo "Downloading $TERRAFORM_URL"
mkdir -p "$TERRAFORM_PATH"
curl -ls "$TERRAFORM_URL" -o "$TERRAFORM_PATH.zip"
fi
cd "$TERRAFORM_PATH" && unzip "$TERRAFORM_PATH.zip" && cd - || exit 2
fi
# shellcheck disable=SC2068
$TERRAFORM_CMD $@