Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- BASE_URL=https://registry.hub.docker.com/v1/repositories
- TF_PATH=~/bin/terraform
- # set -x
- # print all the docker tags found on official terraform repository
- function _get_tf_tags() {
- for tag in $(wget -q ${BASE_URL}/hashicorp/terraform/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}'); do
- echo $tag
- done
- }
- if [[ "$1" == "list" ]]; then
- _get_tf_tags
- exit 0
- fi
- function _check_tf_version() {
- _get_tf_tags | grep $1
- if [[ $? -ne 0 ]]; then
- # echo wersja nie istnieje
- return 1
- else
- return 0
- fi
- }
- function _get_current_tf_version() {
- cat ${TF_PATH} | grep hashicorp/terraform | cut -d ':' -f 7 | cut -d ' ' -f 1
- }
- if [[ $# -lt 1 ]]; then
- echo "Show list of Terraform Tags"
- echo " $0 list"
- echo
- echo "Set Terraform Version"
- echo " $0 <TERRAFORM_VERSION>"
- echo
- CURRENT_VERSION=$(_get_current_tf_version)
- echo "Current version: ${CURRENT_VERSION}"
- exit 1
- fi
- RET=$(_check_tf_version $1)
- if [[ $? -eq 0 ]]; then
- cat << _EOF > ${TF_PATH}
- #!/bin/bash
- TERRAFORM_OPTS=""
- env | grep TF_VAR &>/dev/null
- if [[ \$? -eq 0 ]]; then
- OIFS=\$IFS
- IFS=$'\n'
- for ee in \$(env | grep TF_VAR); do
- KEY=\$(echo \$ee | cut -d '=' -f 1)
- TERRAFORM_OPTS="\${TERRAFORM_OPTS} -e \$KEY"
- done
- IFS=\$OIFS
- fi
- FAKEROOT=\$(git rev-parse --show-toplevel)
- if [[ -z \${FAKEROOT} ]]; then
- FAKEROOT=\${PWD}
- fi
- docker run --rm -i \
- \${TERRAFORM_OPTS} \
- -e AWS_PROFILE \
- -e AWS_ACCESS_KEY_ID \
- -e AWS_SECRET_ACCESS_KEY \
- -e STAGE \
- -e TF_LOG \
- -v \${FAKEROOT}:\${FAKEROOT} \
- -v \${HOME}/.ssh:/root/.ssh:ro \
- -v \${HOME}/.aws:/root/.aws:ro \
- -w \${PWD} \
- hashicorp/terraform:$1 "\$@"
- _EOF
- echo "Terraform $1 configured"
- chmod +x ${TF_PATH}
- else
- echo "Version $1 doesn't exist"
- fi
Add Comment
Please, Sign In to add comment