Forked from Vidimensional/terraform_installer.sh
Last active
January 25, 2021 21:33
-
-
Save romach/369a3edae8025cfff39a85f5ec78f7d8 to your computer and use it in GitHub Desktop.
Terraform Installer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# sudo ./terraform_installer.sh -a linux_amd64 | |
set -e | |
while getopts a: flag | |
do | |
case "${flag}" in | |
a) ARCHITECTURE=${OPTARG};; | |
esac | |
done | |
INSTALLATION_PATH="/usr/bin" | |
TERRAFORM_RELEASES_URL="https://releases.hashicorp.com/terraform" | |
GITHUB_RELEASES_URL="https://api.github.com/repos/hashicorp/terraform/releases" | |
echo "-> Getting latest release number." | |
release="$( curl -s ${GITHUB_RELEASES_URL} | jq '.[].tag_name' | head -n1 | grep -Eo '[0-9.]+' )" | |
echo "-> Latest release is ${release}." | |
if [ -e "${INSTALLATION_PATH}/${release}" ]; then | |
echo "Version already installed." | |
exit | |
fi | |
echo "-> Downloading Terraform ${release}." | |
TMP_DOWNLOAD_PATH="/tmp/terraform_${release}_${ARCHITECTURE}.zip" | |
wget -O"${TMP_DOWNLOAD_PATH}" "${TERRAFORM_RELEASES_URL}/${release}/terraform_${release}_${ARCHITECTURE}.zip" | |
trap 'rm -vf "${TMP_DOWNLOAD_PATH}"' EXIT INT TERM #Clean ${TMP_DOWNLOAD_PATH} at exit. | |
echo "-> Checking SHA256 sum." | |
original_sha256sum="$( curl -s "${TERRAFORM_RELEASES_URL}/${release}/terraform_${release}_SHA256SUMS" | awk -v pattern="${ARCHITECTURE}" '$0~pattern {print $1}' )" | |
local_sha256sum="$( sha256sum "${TMP_DOWNLOAD_PATH}" | awk '{print $1}' )" | |
echo "Original SHA256 sum: ${original_sha256sum}" | |
echo "Local SHA256 sum: ${local_sha256sum}" | |
if [ "${original_sha256sum}" != "${local_sha256sum}" ]; then | |
echo "SHA256SUM FAIL" | |
exit 1 | |
fi | |
unzip "${TMP_DOWNLOAD_PATH}" -d "${INSTALLATION_PATH}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment