|
@@ -35,7 +35,7 @@ func (c *Config) Load(path string) error {
|
|
|
c.path = path
|
|
|
c.files = make([]string, 0)
|
|
|
|
|
|
- err := c.resolve(path)
|
|
|
+ err := c.resolve(path, true)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -234,14 +234,16 @@ func (c *Config) get(k string, v interface{}) interface{} {
|
|
|
return v
|
|
|
}
|
|
|
|
|
|
-func (c *Config) resolve(path string) error {
|
|
|
+// direct signifies if this is the config path directly specified by the user,
|
|
|
+// versus a file/dir found by recursing into that path
|
|
|
+func (c *Config) resolve(path string, direct bool) error {
|
|
|
i, err := os.Stat(path)
|
|
|
if err != nil {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
if !i.IsDir() {
|
|
|
- c.addFile(path)
|
|
|
+ c.addFile(path, direct)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
@@ -251,7 +253,7 @@ func (c *Config) resolve(path string) error {
|
|
|
}
|
|
|
|
|
|
for _, p := range paths {
|
|
|
- err := c.resolve(filepath.Join(path, p))
|
|
|
+ err := c.resolve(filepath.Join(path, p), false)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -260,10 +262,10 @@ func (c *Config) resolve(path string) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (c *Config) addFile(path string) error {
|
|
|
+func (c *Config) addFile(path string, direct bool) error {
|
|
|
ext := filepath.Ext(path)
|
|
|
|
|
|
- if ext != ".yaml" && ext != ".yml" {
|
|
|
+ if !direct && ext != ".yaml" && ext != ".yml" {
|
|
|
return nil
|
|
|
}
|
|
|
|