MCPcopy Index your code
hub / github.com/coder/coder / openURL

Function openURL

cli/login.go:548–581  ·  view source on GitHub ↗

openURL opens the provided URL via user's default browser

(inv *serpent.Invocation, urlToOpen string)

Source from the content-addressed store, hash-verified

546
547// openURL opens the provided URL via user's default browser
548func openURL(inv *serpent.Invocation, urlToOpen string) error {
549 if !isTTYOut(inv) {
550 return xerrors.New("skipping browser open in non-interactive mode")
551 }
552 noOpen, err := inv.ParsedFlags().GetBool(varNoOpen)
553 if err != nil {
554 panic(err)
555 }
556 if noOpen {
557 return xerrors.New("opening is blocked")
558 }
559 wsl, err := isWSL()
560 if err != nil {
561 return xerrors.Errorf("test running Windows Subsystem for Linux: %w", err)
562 }
563
564 if wsl {
565 // #nosec
566 return exec.Command("cmd.exe", "/c", "start", strings.ReplaceAll(urlToOpen, "&", "^&")).Start()
567 }
568
569 browserEnv := os.Getenv("BROWSER")
570 if browserEnv != "" {
571 browserSh := fmt.Sprintf("%s '%s'", browserEnv, urlToOpen)
572 cmd := exec.CommandContext(inv.Context(), "sh", "-c", browserSh)
573 out, err := cmd.CombinedOutput()
574 if err != nil {
575 return xerrors.Errorf("failed to run %v (out: %q): %w", cmd.Args, out, err)
576 }
577 return nil
578 }
579
580 return browser.OpenURL(urlToOpen)
581}
582
583func promptTrialInfo(inv *serpent.Invocation, fieldName string) (string, error) {
584 value, err := cliui.Prompt(inv, cliui.PromptOptions{

Callers 3

gitAskpassFunction · 0.85
ServerMethod · 0.85
loginMethod · 0.85

Calls 8

isTTYOutFunction · 0.85
isWSLFunction · 0.85
CommandMethod · 0.80
NewMethod · 0.65
StartMethod · 0.65
CommandContextMethod · 0.65
ContextMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected