From c0b93d7ebdfd27badbb41eb62ca0bd77b0252308 Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Sun, 29 May 2022 15:03:51 -0400 Subject: Support URLs for nested templates Signed-off-by: Dave Henderson --- internal/cmd/config.go | 10 +++++----- internal/cmd/main.go | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'internal/cmd') 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) -- cgit v1.2.3