summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2020-08-10 10:48:01 -0400
committerDave Henderson <dhenderson@gmail.com>2020-08-23 19:31:31 -0400
commit4be2c38bab8877d69d5f8f4a5f0370b6672fe0e6 (patch)
tree3f9edd6bddeaaba5717f490231bd35eebdf58891 /cmd
parent406832735e6c2d4f1598502405058f543b1ca16e (diff)
Add experimental mode
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/gomplate/config.go8
-rw-r--r--cmd/gomplate/config_test.go19
-rw-r--r--cmd/gomplate/main.go9
3 files changed, 36 insertions, 0 deletions
diff --git a/cmd/gomplate/config.go b/cmd/gomplate/config.go
index 02278618..caaf4963 100644
--- a/cmd/gomplate/config.go
+++ b/cmd/gomplate/config.go
@@ -156,6 +156,10 @@ func cobraConfig(cmd *cobra.Command, args []string) (cfg *config.Config, err err
if err != nil {
return nil, err
}
+ cfg.Experimental, err = getBool(cmd, "experimental")
+ if err != nil {
+ return nil, err
+ }
cfg.LDelim, err = getString(cmd, "left-delim")
if err != nil {
@@ -249,5 +253,9 @@ func applyEnvVars(ctx context.Context, cfg *config.Config) (*config.Config, erro
cfg.SuppressEmpty = true
}
+ if !cfg.Experimental && conv.ToBool(env.Getenv("GOMPLATE_EXPERIMENTAL", "false")) {
+ cfg.Experimental = true
+ }
+
return cfg, nil
}
diff --git a/cmd/gomplate/config_test.go b/cmd/gomplate/config_test.go
index 24178423..97b9a89f 100644
--- a/cmd/gomplate/config_test.go
+++ b/cmd/gomplate/config_test.go
@@ -233,6 +233,25 @@ func TestApplyEnvVars(t *testing.T) {
&config.Config{SuppressEmpty: true},
&config.Config{SuppressEmpty: true},
},
+
+ {
+ "GOMPLATE_EXPERIMENTAL", "bogus",
+ false,
+ &config.Config{},
+ &config.Config{Experimental: false},
+ },
+ {
+ "GOMPLATE_EXPERIMENTAL", "true",
+ false,
+ &config.Config{},
+ &config.Config{Experimental: true},
+ },
+ {
+ "GOMPLATE_EXPERIMENTAL", "false",
+ false,
+ &config.Config{Experimental: true},
+ &config.Config{Experimental: true},
+ },
}
for i, d := range data {
diff --git a/cmd/gomplate/main.go b/cmd/gomplate/main.go
index cbd3f744..ab52c630 100644
--- a/cmd/gomplate/main.go
+++ b/cmd/gomplate/main.go
@@ -78,6 +78,13 @@ func newGomplateCmd() *cobra.Command {
if err != nil {
return err
}
+ ctx = config.ContextWithConfig(ctx, cfg)
+ if cfg.Experimental {
+ log.UpdateContext(func(c zerolog.Context) zerolog.Context {
+ return c.Bool("experimental", true)
+ })
+ log.Info().Msg("experimental functions and features enabled!")
+ }
log.Debug().Msgf("starting %s", cmd.Name())
log.Debug().
@@ -135,6 +142,8 @@ func initFlags(command *cobra.Command) {
command.Flags().String("left-delim", ldDefault, "override the default left-`delimiter` [$GOMPLATE_LEFT_DELIM]")
command.Flags().String("right-delim", rdDefault, "override the default right-`delimiter` [$GOMPLATE_RIGHT_DELIM]")
+ command.Flags().Bool("experimental", false, "enable experimental features [$GOMPLATE_EXPERIMENTAL]")
+
command.Flags().BoolP("verbose", "V", false, "output extra information about what gomplate is doing")
command.Flags().String("config", defaultConfigFile, "config file (overridden by commandline flags)")