MCPcopy Index your code
hub / github.com/rilldata/rill / OpenCmd

Function OpenCmd

cli/cmd/sudo/user/open.go:14–64  ·  view source on GitHub ↗
(ch *cmdutil.Helper)

Source from the content-addressed store, hash-verified

12)
13
14func OpenCmd(ch *cmdutil.Helper) *cobra.Command {
15 var noOpen bool
16 var ttlMinutes int
17 openCmd := &cobra.Command{
18 Use: "open [<email>]",
19 Args: cobra.MaximumNArgs(1),
20 Short: "Open browser as an assumed user",
21 RunE: func(cmd *cobra.Command, args []string) error {
22 authURL := ch.AdminURL()
23 assumeOpenURI, err := url.JoinPath(authURL, "auth", "assume-open")
24 if err != nil {
25 return err
26 }
27
28 var email string
29 if len(args) == 1 {
30 email = args[0]
31 }
32 if email == "" {
33 email, err = ch.DotRill.GetRepresentingUser()
34 if err != nil {
35 return err
36 }
37 }
38 if email == "" {
39 return errors.New("no user specified; you must specify a user's email or separately assume a user with `rill sudo user assume`")
40 }
41
42 qry := map[string]string{
43 "representing_user": email,
44 "ttl_minutes": strconv.Itoa(ttlMinutes),
45 }
46 assumeOpenURI, err = urlutil.WithQuery(assumeOpenURI, qry)
47 if err != nil {
48 return err
49 }
50
51 if !noOpen {
52 ch.Printf("Opening browser at: %s\n", assumeOpenURI)
53 _ = browser.Open(assumeOpenURI)
54 } else {
55 ch.Printf("Open browser at: %s\n", assumeOpenURI)
56 }
57
58 return nil
59 },
60 }
61 openCmd.Flags().BoolVar(&noOpen, "no-open", false, "Do not open the browser automatically")
62 openCmd.Flags().IntVar(&ttlMinutes, "ttl-minutes", 60, "Minutes until the token should expire")
63 return openCmd
64}

Callers 1

UserCmdFunction · 0.70

Calls 5

WithQueryFunction · 0.92
OpenFunction · 0.92
AdminURLMethod · 0.80
GetRepresentingUserMethod · 0.80
PrintfMethod · 0.80

Tested by

no test coverage detected