feat: Add context-aware functions · cli/browser@9c8f905 · GitHub
Skip to content

Commit 9c8f905

Browse files
committed
feat: Add context-aware functions
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
1 parent d64b903 commit 9c8f905

9 files changed

Lines changed: 60 additions & 22 deletions

‎browser.go‎

Lines changed: 28 additions & 5 deletions

‎browser_darwin.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package browser
22

3-
func openBrowser(url string) error {
4-
return runCmd("open", url)
3+
import "context"
4+
5+
func openBrowser(ctx context.Context, url string) error {
6+
return runCmd(ctx, "open", url)
57
}

‎browser_freebsd.go‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package browser
22

33
import (
4+
"context"
45
"errors"
56
"fmt"
67
"os/exec"
78
)
89

9-
func openBrowser(url string) error {
10-
err := runCmd("xdg-open", url)
10+
func openBrowser(ctx context.Context, url string) error {
11+
err := runCmd(ctx, "xdg-open", url)
1112
if errors.Is(err, exec.ErrNotFound) {
1213
return fmt.Errorf("%w - install xdg-utils from ports(8)", err)
1314
}

‎browser_linux.go‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package browser
22

33
import (
4+
"context"
45
"os/exec"
56
"strings"
67
)
78

8-
func openBrowser(url string) error {
9+
func openBrowser(ctx context.Context, url string) error {
910
providers := []string{"xdg-open", "x-www-browser", "www-browser", "wslview"}
1011

1112
// There are multiple possible providers to open a browser on linux
1213
// One of them is xdg-open, another is x-www-browser, then there's www-browser, etc.
1314
// Look for one that exists and run it
1415
for _, provider := range providers {
1516
if _, err := exec.LookPath(provider); err == nil {
16-
return runCmd(provider, url)
17+
return runCmd(ctx, provider, url)
1718
}
1819
}
1920

‎browser_netbsd.go‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package browser
22

33
import (
4+
"context"
45
"errors"
56
"os/exec"
67
)
78

8-
func openBrowser(url string) error {
9-
err := runCmd("xdg-open", url)
9+
func openBrowser(ctx context.Context, url string) error {
10+
err := runCmd(ctx, "xdg-open", url)
1011
if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound {
1112
return errors.New("xdg-open: command not found - install xdg-utils from pkgsrc(7)")
1213
}

‎browser_openbsd.go‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package browser
22

33
import (
4+
"context"
45
"errors"
56
"fmt"
67
"os/exec"
78
)
89

9-
func openBrowser(url string) error {
10-
err := runCmd("xdg-open", url)
10+
func openBrowser(ctx context.Context, url string) error {
11+
err := runCmd(ctx, "xdg-open", url)
1112
if errors.Is(err, exec.ErrNotFound) {
1213
return fmt.Errorf("%w - install xdg-utils from ports(8)", err)
1314
}

‎browser_unsupported.go‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1+
//go:build !linux && !windows && !darwin && !openbsd && !freebsd && !netbsd
12
// +build !linux,!windows,!darwin,!openbsd,!freebsd,!netbsd
23

34
package browser
45

56
import (
7+
"context"
68
"fmt"
79
"runtime"
810
)
911

10-
func openBrowser(url string) error {
12+
func openBrowser(_ context.Context, _ string) error {
1113
return fmt.Errorf("openBrowser: unsupported operating system: %v", runtime.GOOS)
1214
}

‎browser_windows.go‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package browser
22

3-
import "golang.org/x/sys/windows"
3+
import (
4+
"context"
45

5-
func openBrowser(url string) error {
6+
"golang.org/x/sys/windows"
7+
)
8+
9+
func openBrowser(_ context.Context, url string) error {
610
return windows.ShellExecute(0, nil, windows.StringToUTF16Ptr(url), nil, nil, windows.SW_SHOWNORMAL)
711
}

‎example_test.go‎

Lines changed: 7 additions & 4 deletions

0 commit comments

Comments
 (0)