From 2098da3417695370598d21ae386be9af1fb90ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Mon, 10 Nov 2025 10:18:34 +0100 Subject: [PATCH] Implemented configurable debugging port, bumped to v2 --- main.go | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/main.go b/main.go index 336aa88..4c91f6b 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "embed" "encoding/json" "flag" + "fmt" "html/template" "io" "log" @@ -16,12 +17,12 @@ import ( "strings" ) -const VERSION = "v1" +const VERSION = "v2" var ( - flagVerbose bool - flagWsURL string - flagWatch string + flagVerbose bool + flagVersion bool + flagDebuggingPort int //go:embed static fs embed.FS @@ -29,10 +30,15 @@ var ( func main() { flag.BoolVar(&flagVerbose, "v", false, "verbose") - flag.StringVar(&flagWsURL, "ws", "ws://127.0.0.1:9222", "devtools url") - flag.StringVar(&flagWatch, "watch", "", "Files to watch") + flag.BoolVar(&flagVersion, "version", false, "Print version and exit") + flag.IntVar(&flagDebuggingPort, "port", 9222, "Chrome debugging port") flag.Parse() + if flagVersion { + fmt.Println(VERSION) + return + } + http.HandleFunc("/", pageIndex) http.HandleFunc("/css/main.css", pageCSS) @@ -46,7 +52,7 @@ func main() { http.ListenAndServe("[::]:5123", nil) } -func replaceTilde(str string) string {// {{{ +func replaceTilde(str string) string { // {{{ homedir, err := os.UserHomeDir() if err != nil { log.Println(err) @@ -58,7 +64,7 @@ func replaceTilde(str string) string {// {{{ } return str -}// }}} +} // }}} func pageIndex(w http.ResponseWriter, r *http.Request) { // {{{ var tmpl *template.Template @@ -73,7 +79,7 @@ func pageIndex(w http.ResponseWriter, r *http.Request) { // {{{ } data := map[string]any{ - "Sites": sites, + "Sites": sites, "VERSION": VERSION, } tmpl.Execute(w, data) @@ -91,7 +97,7 @@ func pageCSS(w http.ResponseWriter, r *http.Request) { // {{{ } // }}} func actionSites(w http.ResponseWriter, r *http.Request) { // {{{ j, _ := json.Marshal(struct { - OK bool + OK bool Sites map[string]*Site }{ true, @@ -100,17 +106,17 @@ func actionSites(w http.ResponseWriter, r *http.Request) { // {{{ w.Write(j) } // }}} -func actionBrowserStart(w http.ResponseWriter, r *http.Request) {// {{{ +func actionBrowserStart(w http.ResponseWriter, r *http.Request) { // {{{ body, _ := io.ReadAll(r.Body) userDataDir := replaceTilde(string(body)) - browser := exec.Command("google-chrome", "--user-data-dir="+string(userDataDir), "--remote-debugging-port=9222") + browser := exec.Command("google-chrome", "--user-data-dir="+string(userDataDir), fmt.Sprintf("--remote-debugging-port=%d", flagDebuggingPort)) err := browser.Start() if err != nil { log.Println(err) } else { go browser.Wait() } -}// }}} +} // }}} func actionStart(w http.ResponseWriter, r *http.Request) { // {{{ var req struct { URL string @@ -133,7 +139,8 @@ func actionStart(w http.ResponseWriter, r *http.Request) { // {{{ var site Site expandedWatch := replaceTilde(req.Watch) - site, err = NewSite(flagWsURL, req.URL, expandedWatch) + wsURL := fmt.Sprintf("ws://127.0.0.1:%d", flagDebuggingPort) + site, err = NewSite(wsURL, req.URL, expandedWatch) if err != nil { log.Println(err) }