From 64b594c4ac5dc054ec8e61595a59e4c694665c1d Mon Sep 17 00:00:00 2001 From: pk Date: Wed, 6 Aug 2025 12:46:00 +0200 Subject: [PATCH] Allow different port --- helpers.go | 14 +++++++------- watch.go | 9 +++++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/helpers.go b/helpers.go index 59709a6..bfc6e58 100644 --- a/helpers.go +++ b/helpers.go @@ -148,7 +148,7 @@ func replace(opts options) { } } -func injectLR(opts options) { +func injectLR(lrport uint, opts options) { if opts.Watch.InjectLiveReload == "" { return } @@ -164,7 +164,7 @@ func injectLR(opts options) { if !opts.Watch.SkipCSPInject { // First modify CSP - htmlContent, err = updateContentPolicyTag(htmlContent) + htmlContent, err = updateContentPolicyTag(lrport, htmlContent) if err != nil { fmt.Println("Error modifying CSP:", err) return @@ -172,7 +172,7 @@ func injectLR(opts options) { } // Then inject script - finalHTML, err := injectLiveReloadScript(htmlContent) + finalHTML, err := injectLiveReloadScript(lrport, htmlContent) if err != nil { fmt.Println("Error injecting script:", err) return @@ -187,7 +187,7 @@ func injectLR(opts options) { fmt.Printf("Injected live reload script reference into %s\n", opts.Watch.InjectLiveReload) } -func injectLiveReloadScript(html string) (string, error) { +func injectLiveReloadScript(lrport uint, html string) (string, error) { // Check if script is already present if strings.Contains(html, "livereload.js") { return html, nil @@ -199,19 +199,19 @@ func injectLiveReloadScript(html string) (string, error) { return html, nil // Return unchanged if no body tag found } - scriptTag := `` + scriptTag := fmt.Sprintf(``, lrport) newHTML := bodyCloseRegex.ReplaceAllString(html, scriptTag+"") return newHTML, nil } -func updateContentPolicyTag(html string) (string, error) { +func updateContentPolicyTag(lrport uint, html string) (string, error) { doc, err := goquery.NewDocumentFromReader(strings.NewReader(html)) if err != nil { return html, err } - liveReloadHost := "localhost:35729" + liveReloadHost := fmt.Sprintf("localhost:%d", lrport) liveReloadURL := "http://" + liveReloadHost liveReloadWS := "ws://" + liveReloadHost diff --git a/watch.go b/watch.go index 83b19e9..8d2c748 100644 --- a/watch.go +++ b/watch.go @@ -13,11 +13,13 @@ import ( func watchAction(ctx *cli.Context) error { cfgPath, err := filepath.Abs(ctx.String("c")) - if err != nil { return err } + lrport := ctx.Uint("lr-port") + fmt.Printf("Live reload is running on port %d\n", lrport) + os.Chdir(filepath.Dir(cfgPath)) optsSetups := readCfg(cfgPath) @@ -25,7 +27,7 @@ func watchAction(ctx *cli.Context) error { purge(opts) cp(opts) build(opts) - injectLR(opts) + injectLR(lrport, opts) replace(opts) } @@ -106,8 +108,7 @@ func watchAction(ctx *cli.Context) error { go func() { fmt.Println("Starting live reload server.") - port := ctx.Uint("lr-port") - lr := lrserver.New(lrserver.DefaultName, uint16(port)) + lr := lrserver.New(lrserver.DefaultName, uint16(lrport)) go func() { for {