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
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 $@
|