├── .github └── workflows │ ├── rust.yml │ ├── shell.yml │ └── tests.yml ├── .gitignore ├── .logo.png ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── dev.sh ├── install.sh ├── menu.gif ├── src ├── cli.rs ├── exec.rs ├── main.rs ├── prompt.rs ├── vars.rs └── workspace.rs └── test_dir ├── commands ├── global_options ├── project1 ├── aws │ ├── ap-southeast-4 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ ├── aws.tf │ ├── eu-west-1 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ └── us-east-2 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars ├── azure │ ├── azure.tf │ ├── francecentral │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ ├── southindia │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ └── westus2 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars ├── gcp │ ├── asia-south2 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ ├── europe-west1 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars │ ├── gcp.tf │ └── us-central1 │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ └── staging.tfvars ├── main.tf ├── outputs.tf └── variables.tf ├── project2 ├── dev │ ├── main.tf │ ├── outputs.tf │ ├── region_a │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars │ └── region_b │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars ├── main.tf ├── outputs.tf ├── production │ ├── main.tf │ ├── outputs.tf │ ├── region_a │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars │ └── region_b │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars ├── staging │ ├── main.tf │ ├── outputs.tf │ ├── region_a │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars │ └── region_b │ │ ├── service_one.tfvars │ │ ├── service_three.tfvars │ │ └── service_two.tfvars └── variables.tf ├── project3 ├── applications │ ├── backend-app │ │ ├── env │ │ │ ├── dev.tfvars │ │ │ ├── production.tfvars │ │ │ ├── qa.tfvars │ │ │ └── staging.tfvars │ │ └── main.tf │ └── frontend-app │ │ ├── env │ │ ├── dev.tfvars │ │ ├── production.tfvars │ │ ├── qa.tfvars │ │ └── staging.tfvars │ │ └── main.tf └── modules │ ├── network │ ├── dns.tf │ ├── main.tf │ ├── outputs.tf │ └── variables.tf │ └── spaces │ ├── main.tf │ ├── outputs.tf │ └── variables.tf └── project4 ├── main.tf ├── outputs.tf ├── variables.tf └── vars ├── asia-east1 ├── app-one │ ├── dev.tfvars.json │ ├── production.tfvars.json │ └── staging.tfvars.json └── app-two │ ├── dev.tfvars.json │ ├── production.tfvars.json │ └── staging.tfvars.json └── us-east1 └── app-one ├── dev.tfvars.json ├── production.tfvars.json └── staging.tfvars.json /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.github/workflows/shell.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/.github/workflows/shell.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/.logo.png -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/README.md -------------------------------------------------------------------------------- /dev.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/dev.sh -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/install.sh -------------------------------------------------------------------------------- /menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/menu.gif -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/cli.rs -------------------------------------------------------------------------------- /src/exec.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/exec.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/prompt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/prompt.rs -------------------------------------------------------------------------------- /src/vars.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/vars.rs -------------------------------------------------------------------------------- /src/workspace.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/src/workspace.rs -------------------------------------------------------------------------------- /test_dir/commands: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/commands -------------------------------------------------------------------------------- /test_dir/global_options: -------------------------------------------------------------------------------- 1 | -chdir=DIR 2 | -help 3 | -version 4 | -------------------------------------------------------------------------------- /test_dir/project1/aws/ap-southeast-4/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/ap-southeast-4/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/ap-southeast-4/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/aws.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/eu-west-1/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/eu-west-1/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/eu-west-1/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/us-east-2/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/us-east-2/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/aws/us-east-2/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/azure.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/francecentral/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/francecentral/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/francecentral/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/southindia/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/southindia/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/southindia/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/westus2/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/westus2/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/azure/westus2/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/asia-south2/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/asia-south2/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/asia-south2/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/europe-west1/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/europe-west1/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/europe-west1/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/gcp.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/us-central1/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/us-central1/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/gcp/us-central1/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project1/main.tf -------------------------------------------------------------------------------- /test_dir/project1/outputs.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project1/variables.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project2/dev/main.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project2/dev/outputs.tf: -------------------------------------------------------------------------------- 1 | output "vpc_id" { 2 | value = "dev module here" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_a/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_a/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_a/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_b/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_b/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/dev/region_b/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "dev" 2 | -------------------------------------------------------------------------------- /test_dir/project2/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project2/main.tf -------------------------------------------------------------------------------- /test_dir/project2/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project2/outputs.tf -------------------------------------------------------------------------------- /test_dir/project2/production/main.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project2/production/outputs.tf: -------------------------------------------------------------------------------- 1 | output "vpc_id" { 2 | value = "production module here" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_a/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_a/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_a/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_b/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_b/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/production/region_b/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "production" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/main.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project2/staging/outputs.tf: -------------------------------------------------------------------------------- 1 | output "vpc_id" { 2 | value = "staging module here" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_a/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_a/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_a/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_b/service_one.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_b/service_three.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/staging/region_b/service_two.tfvars: -------------------------------------------------------------------------------- 1 | environment = "staging" 2 | -------------------------------------------------------------------------------- /test_dir/project2/variables.tf: -------------------------------------------------------------------------------- 1 | variable "environment" { 2 | type = string 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project3/applications/backend-app/env/dev.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project3/applications/backend-app/env/dev.tfvars -------------------------------------------------------------------------------- /test_dir/project3/applications/backend-app/env/production.tfvars: -------------------------------------------------------------------------------- 1 | clouds = ["aws", "gcp"] 2 | -------------------------------------------------------------------------------- /test_dir/project3/applications/backend-app/env/qa.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project3/applications/backend-app/env/qa.tfvars -------------------------------------------------------------------------------- /test_dir/project3/applications/backend-app/env/staging.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project3/applications/backend-app/env/staging.tfvars -------------------------------------------------------------------------------- /test_dir/project3/applications/backend-app/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "~> 1.2" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project3/applications/frontend-app/env/dev.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/applications/frontend-app/env/production.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/applications/frontend-app/env/qa.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/applications/frontend-app/env/staging.tfvars: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/applications/frontend-app/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "1.4.1" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project3/modules/network/dns.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/modules/network/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "1.2.3" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project3/modules/network/outputs.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/modules/network/variables.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/modules/spaces/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "~> 0.15" 3 | } 4 | -------------------------------------------------------------------------------- /test_dir/project3/modules/spaces/outputs.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project3/modules/spaces/variables.tf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test_dir/project4/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "~>1.6" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project4/outputs.tf -------------------------------------------------------------------------------- /test_dir/project4/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ant0wan/tfam/HEAD/test_dir/project4/variables.tf -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-one/dev.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "dev" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-one/production.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "production" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-one/staging.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "staging" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-two/dev.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "dev" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-two/production.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "production" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/asia-east1/app-two/staging.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "staging" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/us-east1/app-one/dev.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "dev" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/us-east1/app-one/production.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "production" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /test_dir/project4/vars/us-east1/app-one/staging.tfvars.json: -------------------------------------------------------------------------------- 1 | { 2 | "environment": "staging" 3 | } 4 | --------------------------------------------------------------------------------