#!/bin/sh set -eu # A wrapper for Terraform to include a variables file if one exists that matches # the workspace name (on commands that support that). workspace="$(terraform workspace show)" if [ ! -f "$workspace.tfvars" ] && [ ! -d "$workspace" ] then exec terraform "$@" fi for arg in "$@" do if [ "$arg" = "plan" ] || [ "$arg" = "console" ] || [ "$arg" = "import" ] || [ "$arg" = "refresh" ] then additional_args='' if [ -f "$workspace.tfvars" ] then additional_args="$additional_args -var-file=$workspace.tfvars" fi if [ -d "$workspace" ] then additional_args="$additional_args $(find "$workspace" -type f -name '*.tfvars' -exec printf '-var-file=%s ' {} \;)" fi fi done # shellcheck disable=SC2086 exec terraform "$@" ${additional_args:-}