github.com/tilt-dev/tilt@v0.36.0/internal/tiltfile/secretsettings/secret_settings.go (about) 1 package secretsettings 2 3 import ( 4 "go.starlark.net/starlark" 5 6 "github.com/tilt-dev/tilt/pkg/model" 7 8 "github.com/tilt-dev/tilt/internal/tiltfile/starkit" 9 ) 10 11 // Implements functions for dealing with k8s secret settings. 12 type Plugin struct { 13 } 14 15 func NewPlugin() Plugin { 16 return Plugin{} 17 } 18 19 func (e Plugin) NewState() interface{} { 20 return model.DefaultSecretSettings() 21 } 22 23 func (e Plugin) OnStart(env *starkit.Environment) error { 24 return env.AddBuiltin("secret_settings", e.secretSettings) 25 } 26 27 func (e Plugin) secretSettings(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) { 28 var disable bool 29 if err := starkit.UnpackArgs(thread, fn.Name(), args, kwargs, 30 "disable_scrub", &disable); err != nil { 31 return nil, err 32 } 33 34 err := starkit.SetState(thread, func(settings model.SecretSettings) model.SecretSettings { 35 settings.ScrubSecrets = !disable 36 return settings 37 }) 38 39 return starlark.None, err 40 } 41 42 var _ starkit.StatefulPlugin = Plugin{} 43 44 func MustState(model starkit.Model) model.SecretSettings { 45 state, err := GetState(model) 46 if err != nil { 47 panic(err) 48 } 49 return state 50 } 51 52 func GetState(m starkit.Model) (model.SecretSettings, error) { 53 var state model.SecretSettings 54 err := m.Load(&state) 55 return state, err 56 }