#!/bin/sh
set -eu

command -v terraform >/dev/null || { echo "Can't find the terraform binary, aborting." >&2; exit 1; }

export TF_INPUT='0'
export TF_IN_AUTOMATION='1'

version="$(terraform version | sed --silent 's/Terraform v\([0-9]*\)\.\([0-9]*\)\.[0-9]*$/\1.\2/p')"
major="$(echo "$version" | cut -d '.' -f 1)"
minor="$(echo "$version" | cut -d '.' -f 2)"
if [ "$major" -gt '0' ] || [ "$minor" -gt '14' ]
then
    post0_14='1'
fi

for i in "$@"
do
    if [ -n "${post0_14:-}" ]
    then
        terraform -chdir="$(dirname "$i")" init -backend=false || { code='1'; continue; }
        terraform -chdir="$(dirname "$i")" validate || code='1'
    else
        terraform init -backend=false "$(dirname "$i")" || { code='1'; continue; }
        terraform validate "$(dirname "$i")" || code='1'
    fi
done

exit "${code:-0}"