github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/telemetry/enable.go (about) 1 package telemetry 2 3 import ( 4 "github.com/spf13/cobra" 5 6 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" 7 "github.com/kubeshop/testkube/cmd/kubectl-testkube/config" 8 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 9 "github.com/kubeshop/testkube/pkg/ui" 10 ) 11 12 func NewEnableTelemetryCmd() *cobra.Command { 13 cmd := &cobra.Command{ 14 Use: "telemetry", 15 Short: "Enable collecting of anonymous telemetry data", 16 Run: func(cmd *cobra.Command, args []string) { 17 ui.NL() 18 ui.Print(ui.IconRocket + " Enabling telemetry on the testkube CLI") 19 20 cfg, err := config.Load() 21 if err == nil { 22 cfg.EnableAnalytics() 23 err = config.Save(cfg) 24 } 25 if err != nil { 26 ui.PrintDisabled("Telemetry on CLI", "failed") 27 ui.PrintConfigError(err) 28 } else { 29 ui.PrintEnabled("Telemetry on CLI", "enabled") 30 } 31 32 client, _, err := common.GetClient(cmd) 33 ui.WarnOnError("getting client", err) 34 if err != nil { 35 return 36 } 37 38 _, err = client.UpdateConfig(testkube.Config{EnableTelemetry: true}) 39 if err != nil { 40 ui.PrintDisabled("Telemetry on API", "failed") 41 ui.PrintConfigError(err) 42 } else { 43 ui.PrintEnabled("Telemetry on API", "enabled") 44 } 45 46 ui.NL() 47 }, 48 } 49 50 return cmd 51 }