diff --git a/http/open_browser_darwin.go b/http/open_browser_darwin.go index dd7da7a..d57a290 100644 --- a/http/open_browser_darwin.go +++ b/http/open_browser_darwin.go @@ -1,4 +1,4 @@ -// +build darwin +// This will build for osx without a build tag based on the filename package http diff --git a/http/open_browser_linux.go b/http/open_browser_linux.go deleted file mode 100644 index 3b7dfee..0000000 --- a/http/open_browser_linux.go +++ /dev/null @@ -1,30 +0,0 @@ -// +build linux - -package http - -import ( - "fmt" - "os" - "os/exec" -) - -// OpenInBrowser checks for the presence of a display server -// and environment variables indicating a gui is present. If found -// then xdg-open is called on a url to open said url in the default -// gui web browser for the system -func OpenInBrowser(url string) (string, error) { - disp := os.Getenv("DISPLAY") - wayland := os.Getenv("WAYLAND_DISPLAY") - _, err := exec.LookPath("Xorg") - if disp == "" && wayland == "" && err != nil { - return "", fmt.Errorf("No gui is available, check 'webmode' setting") - } - - // Use start rather than run or output in order - // to release the process and not block - err = exec.Command("xdg-open", url).Start() - if err != nil { - return "", err - } - return "Opened in system default web browser", nil -} diff --git a/http/open_browser_other.go b/http/open_browser_other.go index 1388c6b..2f74d22 100644 --- a/http/open_browser_other.go +++ b/http/open_browser_other.go @@ -1,11 +1,30 @@ -// +build !linux -// +build !darwin -// +build !windows +// +build !darwin,!windows package http -import "fmt" +import ( + "fmt" + "os" + "os/exec" +) +// OpenInBrowser checks for the presence of a display server +// and environment variables indicating a gui is present. If found +// then xdg-open is called on a url to open said url in the default +// gui web browser for the system func OpenInBrowser(url string) (string, error) { - return "", fmt.Errorf("Unsupported os for 'webmode' 'gui' setting") + disp := os.Getenv("DISPLAY") + wayland := os.Getenv("WAYLAND_DISPLAY") + _, err := exec.LookPath("Xorg") + if disp == "" && wayland == "" && err != nil { + return "", fmt.Errorf("No gui is available, check 'webmode' setting") + } + + // Use start rather than run or output in order + // to release the process and not block + err = exec.Command("xdg-open", url).Start() + if err != nil { + return "", err + } + return "Opened in system default web browser", nil } diff --git a/http/open_browser_windows.go b/http/open_browser_windows.go index 0ddf6c7..496d00b 100644 --- a/http/open_browser_windows.go +++ b/http/open_browser_windows.go @@ -1,5 +1,5 @@ -// +build windows - +// This will only build for windows based on the filename +// no build tag required package http import "os/exec"