summaryrefslogtreecommitdiff
path: root/internal/cmd
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2022-05-29 15:03:51 -0400
committerDave Henderson <dhenderson@gmail.com>2022-05-30 14:06:32 -0400
commitc0b93d7ebdfd27badbb41eb62ca0bd77b0252308 (patch)
tree2f3b3e17023f4819cf69dee8953ea44463588bae /internal/cmd
parent9ae9a6a5182342f775383646058807222947f483 (diff)
Support URLs for nested templates
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'internal/cmd')
-rw-r--r--internal/cmd/config.go10
-rw-r--r--internal/cmd/main.go8
2 files changed, 13 insertions, 5 deletions
diff --git a/internal/cmd/config.go b/internal/cmd/config.go
index d48c6b63..cdcc1d3e 100644
--- a/internal/cmd/config.go
+++ b/internal/cmd/config.go
@@ -126,10 +126,6 @@ func cobraConfig(cmd *cobra.Command, args []string) (cfg *config.Config, err err
if err != nil {
return nil, err
}
- cfg.Templates, err = getStringSlice(cmd, "template")
- if err != nil {
- return nil, err
- }
cfg.OutputDir, err = getString(cmd, "output-dir")
if err != nil {
return nil, err
@@ -173,11 +169,15 @@ func cobraConfig(cmd *cobra.Command, args []string) (cfg *config.Config, err err
if err != nil {
return nil, err
}
+ ts, err := getStringSlice(cmd, "template")
+ if err != nil {
+ return nil, err
+ }
hdr, err := getStringSlice(cmd, "datasource-header")
if err != nil {
return nil, err
}
- err = cfg.ParseDataSourceFlags(ds, cx, hdr)
+ err = cfg.ParseDataSourceFlags(ds, cx, ts, hdr)
if err != nil {
return nil, err
}
diff --git a/internal/cmd/main.go b/internal/cmd/main.go
index c87a3ee2..f52e3e29 100644
--- a/internal/cmd/main.go
+++ b/internal/cmd/main.go
@@ -7,6 +7,7 @@ import (
"os/exec"
"os/signal"
+ "github.com/hairyhenderson/go-fsimpl/filefs"
"github.com/hairyhenderson/gomplate/v3"
"github.com/hairyhenderson/gomplate/v3/env"
"github.com/hairyhenderson/gomplate/v3/version"
@@ -166,6 +167,13 @@ func InitFlags(command *cobra.Command) {
func Main(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io.Writer) error {
ctx = initLogger(ctx, stderr)
+ // inject a default filesystem provider for file:// URLs
+ // TODO: expand this to support other schemes!
+ if gomplate.FSProviderFromContext(ctx) == nil {
+ // allow this to be overridden by tests
+ ctx = gomplate.ContextWithFSProvider(ctx, filefs.FS)
+ }
+
command := NewGomplateCmd()
InitFlags(command)
command.SetArgs(args)