package get import ( "context" "fmt" "time" "edge-infra.dev/pkg/edge/edgecli" "edge-infra.dev/pkg/edge/edgecli/constructors" "edge-infra.dev/pkg/edge/edgecli/flagutil" "edge-infra.dev/pkg/lib/cli/command" "edge-infra.dev/pkg/lib/cli/rags" ) func NewCmd(cfg *edgecli.Config) *command.Command { var cmd *command.Command flagsets := flagutil.GetConnectionFlags(cfg) var terminalID string cmd = &command.Command{ ShortUsage: "edge activationcode get", ShortHelp: "Get a terminal's activation code", Flags: append( flagsets, &rags.Rag{ Name: flagutil.TerminalID, Usage: "Terminal id to get activation code for terminal", Value: &rags.String{Var: &terminalID}, Required: true, }, ), Exec: func(_ context.Context, _ []string) error { if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil { return err } terminalID := flagutil.GetStringFlag(cmd.Rags, flagutil.TerminalID) if !flagutil.IsValidUUID(terminalID) { return fmt.Errorf("invalid terminalID uuid %s", terminalID) } registrar, err := constructors.BuildRegistrar(cmd.Rags) if err != nil { return err } reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second) defer cancelReq() activationCode, err := registrar.GetActivationCode(reqCtx, terminalID) if err != nil { return err } fmt.Printf("Activation code: %s \n", activationCode) return nil }, } return cmd }