commit 153043dd7054e2eb53f9d201f81b35736c0d1931
parent 9b67862028cfd8ffe2dfd7fa607d3562ff5972da
Author: Sean Enck <sean@ttypty.com>
Date: Fri, 6 Dec 2024 19:10:44 -0500
support file globbing
Diffstat:
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/internal/config/toml.go b/internal/config/toml.go
@@ -7,6 +7,7 @@ import (
"fmt"
"io"
"os"
+ "path/filepath"
"slices"
"strings"
@@ -146,13 +147,23 @@ func overlayConfig(r io.Reader, canInclude bool, m *map[string]interface{}, load
return errors.New("nested includes not allowed")
}
for _, s := range including {
- read := os.Expand(s, os.Getenv)
- reader, err := loader(read)
- if err != nil {
- return err
+ use := os.Expand(s, os.Getenv)
+ files := []string{use}
+ if strings.Contains(use, "*") {
+ matched, err := filepath.Glob(use)
+ if err != nil {
+ return err
+ }
+ files = matched
}
- if err := overlayConfig(reader, false, m, nil); err != nil {
- return err
+ for _, file := range files {
+ reader, err := loader(file)
+ if err != nil {
+ return err
+ }
+ if err := overlayConfig(reader, false, m, nil); err != nil {
+ return err
+ }
}
}
}