package server import ( "bytes" "errors" "io" "os/exec" "runtime" ) var cmd map[string]string var stderr bytes.Buffer // Init an associative array with the os supported func init() { cmd = map[string]string{ "windows": "start", "darwin": "open", "linux": "xdg-open", } } // Open a url in the default browser func Open(url string) (io.Writer, error) { open, err := cmd[runtime.GOOS]; if !err { return nil, errors.New("This operating system is not supported.") } cmd := exec.Command(open, url) cmd.Stderr = &stderr if err := cmd.Run(); err != nil { return cmd.Stderr, err } return nil, nil }