diff options
author | Teddy Wing | 2020-12-20 16:25:23 +0100 |
---|---|---|
committer | Teddy Wing | 2020-12-20 16:25:23 +0100 |
commit | 044e3ad0e1dfbb30811b550bea1478f0cb10c6e0 (patch) | |
tree | 6bb5692877f8d585725a037cc0645ab2ef3e2733 | |
parent | 4df6b9169ac3041dbcac1fc47c069e9a464396b7 (diff) | |
download | browserenv-044e3ad0e1dfbb30811b550bea1478f0cb10c6e0.tar.bz2 |
Connect `Stdout` and `Stderr` to browser command
Use the global `Stdout` and `Stderr` variables when running the command
specified by `BROWSER`.
-rw-r--r-- | browserenv.go | 6 | ||||
-rw-r--r-- | browserenv_unix_test.go | 39 |
2 files changed, 44 insertions, 1 deletions
diff --git a/browserenv.go b/browserenv.go index e83c3d1..f5a51ca 100644 --- a/browserenv.go +++ b/browserenv.go @@ -81,7 +81,11 @@ func browserCommand(command, url string) *exec.Cmd { args = append(args, command) - return exec.Command(shell, args...) + cmd := exec.Command(shell, args...) + cmd.Stdout = Stdout + cmd.Stderr = Stderr + + return cmd } func fmtBrowserCommand(command, url string) string { diff --git a/browserenv_unix_test.go b/browserenv_unix_test.go index 0d61a52..f79d31d 100644 --- a/browserenv_unix_test.go +++ b/browserenv_unix_test.go @@ -5,6 +5,7 @@ package browserenv import ( "os" "reflect" + "strings" "testing" ) @@ -57,3 +58,41 @@ func TestBrowserCommand(t *testing.T) { }) } } + +func TestOpenURLStdout(t *testing.T) { + var stdout strings.Builder + Stdout = &stdout + + err := os.Setenv("BROWSER", "printf") + if err != nil { + t.Fatal(err) + } + + url := "http://localhost:8000" + + OpenURL(url) + + got := stdout.String() + if got != url { + t.Errorf("got stdout value %q want %q", got, url) + } +} + +func TestOpenURLStderr(t *testing.T) { + var stderr strings.Builder + Stderr = &stderr + + err := os.Setenv("BROWSER", "printf >&2") + if err != nil { + t.Fatal(err) + } + + url := "http://localhost:8000" + + OpenURL(url) + + got := stderr.String() + if got != url { + t.Errorf("got stdout value %q want %q", got, url) + } +} |