...
1 package get
2
3 import (
4 "context"
5 "fmt"
6 "time"
7
8 "edge-infra.dev/pkg/edge/edgecli"
9 "edge-infra.dev/pkg/edge/edgecli/constructors"
10 "edge-infra.dev/pkg/edge/edgecli/flagutil"
11 "edge-infra.dev/pkg/lib/cli/command"
12 "edge-infra.dev/pkg/lib/cli/rags"
13 )
14
15 func NewCmd(cfg *edgecli.Config) *command.Command {
16 var cmd *command.Command
17 flagsets := flagutil.GetConnectionFlags(cfg)
18 var terminalID string
19
20 cmd = &command.Command{
21 ShortUsage: "edge activationcode get",
22 ShortHelp: "Get a terminal's activation code",
23 Flags: append(
24 flagsets,
25 &rags.Rag{
26 Name: flagutil.TerminalID,
27 Usage: "Terminal id to get activation code for terminal",
28 Value: &rags.String{Var: &terminalID},
29 Required: true,
30 },
31 ),
32 Exec: func(_ context.Context, _ []string) error {
33 if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
34 return err
35 }
36
37 terminalID := flagutil.GetStringFlag(cmd.Rags, flagutil.TerminalID)
38 if !flagutil.IsValidUUID(terminalID) {
39 return fmt.Errorf("invalid terminalID uuid %s", terminalID)
40 }
41
42 registrar, err := constructors.BuildRegistrar(cmd.Rags)
43 if err != nil {
44 return err
45 }
46
47 reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
48 defer cancelReq()
49
50 activationCode, err := registrar.GetActivationCode(reqCtx, terminalID)
51 if err != nil {
52 return err
53 }
54
55 fmt.Printf("Activation code: %s \n", activationCode)
56 return nil
57 },
58 }
59 return cmd
60 }
61
View as plain text