MCPcopy Create free account
hub / github.com/rilldata/rill / SwitchCmd

Function SwitchCmd

cli/cmd/org/switch.go:12–62  ·  view source on GitHub ↗
(ch *cmdutil.Helper)

Source from the content-addressed store, hash-verified

10)
11
12func SwitchCmd(ch *cmdutil.Helper) *cobra.Command {
13 switchCmd := &cobra.Command{
14 Use: "switch [<org-name>]",
15 Short: "Switch to other organization",
16 Args: cobra.MaximumNArgs(1),
17 RunE: func(cmd *cobra.Command, args []string) error {
18 client, err := ch.Client()
19 if err != nil {
20 return err
21 }
22
23 var defaultOrg string
24 if len(args) == 0 {
25 if !ch.Interactive {
26 return fmt.Errorf("org name must be provided as an argument in non-interactive mode")
27 }
28
29 res, err := client.ListOrganizations(cmd.Context(), &adminv1.ListOrganizationsRequest{
30 PageSize: 1000,
31 })
32 if err != nil {
33 return err
34 }
35
36 defaultOrg, err = SwitchSelectFlow(ch, res.Organizations)
37 if err != nil {
38 return err
39 }
40 } else {
41 _, err = client.GetOrganization(cmd.Context(), &adminv1.GetOrganizationRequest{
42 Org: args[0],
43 })
44 if err != nil {
45 return err
46 }
47 defaultOrg = args[0]
48 }
49
50 err = ch.DotRill.SetDefaultOrg(defaultOrg)
51 if err != nil {
52 return err
53 }
54 ch.Org = defaultOrg
55
56 ch.Printf("Set default organization to %q.\n", defaultOrg)
57 return nil
58 },
59 }
60
61 return switchCmd
62}
63
64func SwitchSelectFlow(ch *cmdutil.Helper, orgs []*adminv1.Organization) (string, error) {
65 if len(orgs) < 1 {

Callers 1

OrgCmdFunction · 0.70

Calls 8

SwitchSelectFlowFunction · 0.85
SetDefaultOrgMethod · 0.80
PrintfMethod · 0.80
ErrorfMethod · 0.65
ListOrganizationsMethod · 0.65
ContextMethod · 0.65
GetOrganizationMethod · 0.65
ClientMethod · 0.45

Tested by

no test coverage detected