From af34345baeecdd9a89304c14859d628ed4f9be85 Mon Sep 17 00:00:00 2001 From: waynechen <396167+waynechen@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:45:42 +0800 Subject: [PATCH 1/2] wq**Diff Summary** - Adds manual open prompt when browser auto-open fails. - Improves `open` function on Linux to avoid `xdg-open` in WSL. - Adds `wslCheck` to detect WSL via `/proc/version`. **Suggested Commit Message** - `Improve browser open handling; avoid xdg-open in WSL and add manual prompt` --- project_web.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/project_web.go b/project_web.go index b01017c..276d887 100644 --- a/project_web.go +++ b/project_web.go @@ -250,6 +250,7 @@ func buildProjectWeb(port string) { err = open("http://localhost:" + port + "/") if err != nil { fmt.Println("failed to open browser", err) + fmt.Println("please open browser manually: http://localhost:" + port + "/") } quit := make(chan os.Signal, 1) @@ -268,8 +269,24 @@ func open(url string) error { case "darwin": cmd = "open" default: // "linux", "freebsd", "openbsd", "netbsd" - cmd = "xdg-open" + if !wslCheck() { + cmd = "xdg-open" + } } args = append(args, url) + if cmd == "" { + fmt.Println("please open browser manually: " + url) + return nil + } return exec.Command(cmd, args...).Start() } + +func wslCheck() bool { + content, err := os.ReadFile("/proc/version") + if err != nil { + return false + } + osVersion := strings.ToLower(string(content)) + fmt.Printf("OS Version: %s", osVersion) + return strings.Contains(osVersion, "microsoft") && strings.Contains(osVersion, "wsl") +} From af882f17126b0f7a7462ecc67e922e79895f2c69 Mon Sep 17 00:00:00 2001 From: waynechen <396167+waynechen@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:49:37 +0800 Subject: [PATCH 2/2] **Diff Summary** - Adds manual open prompt when browser auto-open fails. - Improves `open` function on Linux to avoid `xdg-open` in WSL. - Adds `wslCheck` to detect WSL via `/proc/version`. **Suggested Commit Message** - `Improve browser open handling; avoid xdg-open in WSL and add manual prompt` --- project_web.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/project_web.go b/project_web.go index b01017c..276d887 100644 --- a/project_web.go +++ b/project_web.go @@ -250,6 +250,7 @@ func buildProjectWeb(port string) { err = open("http://localhost:" + port + "/") if err != nil { fmt.Println("failed to open browser", err) + fmt.Println("please open browser manually: http://localhost:" + port + "/") } quit := make(chan os.Signal, 1) @@ -268,8 +269,24 @@ func open(url string) error { case "darwin": cmd = "open" default: // "linux", "freebsd", "openbsd", "netbsd" - cmd = "xdg-open" + if !wslCheck() { + cmd = "xdg-open" + } } args = append(args, url) + if cmd == "" { + fmt.Println("please open browser manually: " + url) + return nil + } return exec.Command(cmd, args...).Start() } + +func wslCheck() bool { + content, err := os.ReadFile("/proc/version") + if err != nil { + return false + } + osVersion := strings.ToLower(string(content)) + fmt.Printf("OS Version: %s", osVersion) + return strings.Contains(osVersion, "microsoft") && strings.Contains(osVersion, "wsl") +}