tf.ps1
<#PSScriptInfo .VERSION 1.6 .GUID fde96073-cd23-48f2-b85a-1b39d52777e8 .AUTHOR Dave Farinelli .LICENSEURI https://www.gnu.org/licenses/gpl-3.0.en.html .PROJECTURI https://github.com/dfar-io/terraform-helper #> <# .DESCRIPTION This Terraform helper allows for quickly using Terraform with different backend configurations for different projects. #> param ( [Parameter(Mandatory = $True)] [string]$command, [Parameter(Mandatory = $True)] [string]$env ) $availableCommands = @( "apply", "destroy" ) function IsValidCommand { param ( [Parameter(Mandatory = $True)] [string]$command ) return $availableCommands.Contains($command) } function DoesTFDirExist { return Test-Path "./tf/" } function DoesEnvExist { return ((Test-Path "./tf/$env.beconf.tfvars") -and (Test-Path "./tf/$env.tfvars") -and (Test-Path "./tf/$env.secrets.tfvars")) } ################################################################################ if ($false -eq (IsValidCommand $command)) { Write-Error "Invalid command - currently supported commands are: ` ${availableCommands}" exit 1 } if ($false -eq (DoesTFDirExist)) { Write-Error "tf/ directory does not exist, ensure you are in the correct ` project and the project has a tf/ directory." exit 1 } if ($false -eq (DoesEnvExist)) { Write-Error "Environment configuration doesn't exist (.beconf.tfvars, ` .tfvars, and .secrets.tfvars). Ensure the environment is entered correctly." exit 1 } terraform init -backend-config="tf/$env.beconf.tfvars" .\tf terraform $command -var-file="tf\$env.tfvars" -var-file="tf\$env.secrets.tfvars" .\tf |