diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2020-08-10 10:48:01 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2020-08-23 19:31:31 -0400 |
| commit | 4be2c38bab8877d69d5f8f4a5f0370b6672fe0e6 (patch) | |
| tree | 3f9edd6bddeaaba5717f490231bd35eebdf58891 /cmd | |
| parent | 406832735e6c2d4f1598502405058f543b1ca16e (diff) | |
Add experimental mode
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/gomplate/config.go | 8 | ||||
| -rw-r--r-- | cmd/gomplate/config_test.go | 19 | ||||
| -rw-r--r-- | cmd/gomplate/main.go | 9 |
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)") |
