...

Source file src/oss.terrastruct.com/util-go/xbrowser/xbrowser.go

Documentation: oss.terrastruct.com/util-go/xbrowser

     1  package xbrowser
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os/exec"
     7  
     8  	"github.com/pkg/browser"
     9  
    10  	"oss.terrastruct.com/util-go/xos"
    11  )
    12  
    13  func Open(ctx context.Context, env *xos.Env, url string) error {
    14  	browserEnv := env.Getenv("BROWSER")
    15  	if browserEnv == "0" || browserEnv == "false" {
    16  		return nil
    17  	}
    18  	if browserEnv != "" && browserEnv != "1" && browserEnv != "true" {
    19  		browserSh := fmt.Sprintf(`%s "$1"`, browserEnv)
    20  		cmd := exec.CommandContext(ctx, "sh", "-sc", browserSh, "--", url)
    21  		out, err := cmd.CombinedOutput()
    22  		if err != nil {
    23  			return fmt.Errorf("failed to run %v (out: %q): %w", cmd.Args, out, err)
    24  		}
    25  		return nil
    26  	}
    27  	return browser.OpenURL(url)
    28  }
    29  

View as plain text