github.com/terraform-linters/tflint@v0.51.2-0.20240520175844-3750771571b6/terraform/meta.go (about) 1 package terraform 2 3 import ( 4 "bytes" 5 "log" 6 "os" 7 "path/filepath" 8 ) 9 10 func dataDir() string { 11 dir := os.Getenv("TF_DATA_DIR") 12 if dir != "" { 13 log.Printf("[INFO] TF_DATA_DIR environment variable found: %s", dir) 14 } else { 15 // The default data dir is always `.terraform` in the current directory 16 dir = ".terraform" 17 } 18 19 return dir 20 } 21 22 func Workspace() string { 23 if envVar := os.Getenv("TF_WORKSPACE"); envVar != "" { 24 log.Printf("[INFO] TF_WORKSPACE environment variable found: %s", envVar) 25 return envVar 26 } 27 28 envData, _ := os.ReadFile(filepath.Join(dataDir(), "environment")) 29 current := string(bytes.TrimSpace(envData)) 30 if current != "" { 31 log.Printf("[INFO] environment file found: %s", current) 32 } else { 33 current = "default" 34 } 35 36 return current 37 }