package installer import ( "context" "github.com/samber/lo" ) type K0sOpt func(*k0sOpt) type k0sOpt struct { Type string // controller, worker controllerAsWorker bool WorkerTokenFile string } func WithK0sType(t string) K0sOpt { types := []string{"controller", "worker"} return func(o *k0sOpt) { if lo.Contains(types, t) { o.Type = t } } } func WithK0sControllerAsWorker() K0sOpt { return func(o *k0sOpt) { o.controllerAsWorker = true } } func WithK0sWorkerTokenFile(filename string) K0sOpt { return func(o *k0sOpt) { if filename != "" { o.WorkerTokenFile = filename } } } func (i *installer) K0s(ctx context.Context, opts ...K0sOpt) error { panic("plz impl") }