File tree 3 files changed +36
-2
lines changed
3 files changed +36
-2
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,11 @@ func ConfigFile() (string, error) {
41
41
return configFile ()
42
42
}
43
43
44
+ // ConfigDir returns the configuration directory for Terraform.
45
+ func ConfigDir () (string , error ) {
46
+ return configDir ()
47
+ }
48
+
44
49
// LoadConfig loads the CLI configuration from ".terraformrc" files.
45
50
func LoadConfig (path string ) (* Config , error ) {
46
51
// Read the HCL file and prepare for parsing
@@ -76,6 +81,17 @@ func (c *Config) Discover() error {
76
81
return err
77
82
}
78
83
84
+ // Look in the plugins directory. This will override any found
85
+ // in the current directory.
86
+ dir , err := ConfigDir ()
87
+ if err != nil {
88
+ log .Printf ("[ERR] Error loading config directory: %s" , err )
89
+ } else {
90
+ if err := c .discover (filepath .Join (dir , "plugins" )); err != nil {
91
+ return err
92
+ }
93
+ }
94
+
79
95
// Next, look in the same directory as the executable. Any conflicts
80
96
// will overwrite those found in our current directory.
81
97
exePath , err := osext .Executable ()
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ import (
13
13
)
14
14
15
15
func configFile () (string , error ) {
16
- dir , err := configDir ()
16
+ dir , err := homeDir ()
17
17
if err != nil {
18
18
return "" , err
19
19
}
@@ -22,6 +22,15 @@ func configFile() (string, error) {
22
22
}
23
23
24
24
func configDir () (string , error ) {
25
+ dir , err := homeDir ()
26
+ if err != nil {
27
+ return "" , err
28
+ }
29
+
30
+ return filepath .Join (dir , ".terraform.d" ), nil
31
+ }
32
+
33
+ func homeDir () (string , error ) {
25
34
// First prefer the HOME environmental variable
26
35
if home := os .Getenv ("HOME" ); home != "" {
27
36
log .Printf ("Detected home directory from env var: %s" , home )
Original file line number Diff line number Diff line change 16
16
const CSIDL_APPDATA = 26
17
17
18
18
func configFile () (string , error ) {
19
- dir , err := configDir ()
19
+ dir , err := homeDir ()
20
20
if err != nil {
21
21
return "" , err
22
22
}
@@ -25,6 +25,15 @@ func configFile() (string, error) {
25
25
}
26
26
27
27
func configDir () (string , error ) {
28
+ dir , err := homeDir ()
29
+ if err != nil {
30
+ return "" , err
31
+ }
32
+
33
+ return filepath .Join (dir , "terraform.d" ), nil
34
+ }
35
+
36
+ func homeDir () (string , error ) {
28
37
b := make ([]uint16 , syscall .MAX_PATH )
29
38
30
39
// See: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v=vs.85).aspx
You can’t perform that action at this time.
0 commit comments