AUTH-2077: Quotes open browser command in windows
This commit is contained in:
parent
1d5cc45ac7
commit
133e6fdc88
|
@ -0,0 +1,11 @@
|
||||||
|
//+build darwin
|
||||||
|
|
||||||
|
package shell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getBrowserCmd(url string) *exec.Cmd {
|
||||||
|
return exec.Command("open", url)
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
//+build !windows,!darwin,!linux,!netbsd,!freebsd,!openbsd
|
||||||
|
|
||||||
|
package shell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getBrowserCmd(url string) *exec.Cmd {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
//+build linux freebsd openbsd netbsd
|
||||||
|
|
||||||
|
package shell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getBrowserCmd(url string) *exec.Cmd {
|
||||||
|
return exec.Command("xdg-open", url)
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
//+build windows
|
||||||
|
|
||||||
|
package shell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getBrowserCmd(url string) *exec.Cmd {
|
||||||
|
cmd := exec.Command("cmd")
|
||||||
|
// CmdLine is only defined when compiling for windows.
|
||||||
|
// Empty string is the cmd proc "Title". Needs to be included because the start command will interpret the first
|
||||||
|
// quoted string as that field and we want to quote the URL.
|
||||||
|
cmd.SysProcAttr = &syscall.SysProcAttr{CmdLine: fmt.Sprintf(`/c start "" "%s"`, url)}
|
||||||
|
return cmd
|
||||||
|
}
|
|
@ -4,25 +4,11 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"runtime"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// OpenBrowser opens the specified URL in the default browser of the user
|
// OpenBrowser opens the specified URL in the default browser of the user
|
||||||
func OpenBrowser(url string) error {
|
func OpenBrowser(url string) error {
|
||||||
var cmd string
|
return getBrowserCmd(url).Start()
|
||||||
var args []string
|
|
||||||
|
|
||||||
switch runtime.GOOS {
|
|
||||||
case "windows":
|
|
||||||
cmd = "cmd"
|
|
||||||
args = []string{"/c", "start"}
|
|
||||||
case "darwin":
|
|
||||||
cmd = "open"
|
|
||||||
default: // "linux", "freebsd", "openbsd", "netbsd"
|
|
||||||
cmd = "xdg-open"
|
|
||||||
}
|
|
||||||
args = append(args, url)
|
|
||||||
return exec.Command(cmd, args...).Start()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run will kick off a shell task and pipe the results to the respective std pipes
|
// Run will kick off a shell task and pipe the results to the respective std pipes
|
||||||
|
|
Loading…
Reference in New Issue