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  }