From: Dragos Plesca Date: Thu, 16 Jun 2016 16:43:47 +0000 (+0300) Subject: transform: Explicitly bind LiveReload to server port X-Git-Tag: v0.17~262 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7e08d23e;p=brevno-suite%2Fhugo transform: Explicitly bind LiveReload to server port If hugo server is run on port 80 or 443, LiveReload does not correctly bind to the same port, instead using port 35729. This commit adds functionality to inform LiveReload of the correct port to bind to. See https://github.com/livereload/livereload-js/issues/16 Partially contributed by Jeff Minard (@chuyskywalker). Fixes #2205 --- diff --git a/transform/livereloadinject.go b/transform/livereloadinject.go index bd22901df..95608185d 100644 --- a/transform/livereloadinject.go +++ b/transform/livereloadinject.go @@ -16,18 +16,21 @@ package transform import ( "bytes" "fmt" + + "github.com/spf13/viper" ) func LiveReloadInject(ct contentTransformer) { endBodyTag := "" match := []byte(endBodyTag) - replaceTemplate := `%s` - replace := []byte(fmt.Sprintf(replaceTemplate, endBodyTag)) + port := viper.Get("port") + replaceTemplate := `%s` + replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) newcontent := bytes.Replace(ct.Content(), match, replace, 1) if len(newcontent) == len(ct.Content()) { endBodyTag = "" - replace := []byte(fmt.Sprintf(replaceTemplate, endBodyTag)) + replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) match := []byte(endBodyTag) newcontent = bytes.Replace(ct.Content(), match, replace, 1) } diff --git a/transform/livereloadinject_test.go b/transform/livereloadinject_test.go index cf618e9ee..9f28e05e2 100644 --- a/transform/livereloadinject_test.go +++ b/transform/livereloadinject_test.go @@ -18,6 +18,8 @@ import ( "fmt" "strings" "testing" + + "github.com/spf13/viper" ) func TestLiveReloadInject(t *testing.T) { @@ -26,13 +28,14 @@ func TestLiveReloadInject(t *testing.T) { } func doTestLiveReloadInject(t *testing.T, bodyEndTag string) { + viper.Set("port", 1313) out := new(bytes.Buffer) in := strings.NewReader(bodyEndTag) tr := NewChain(LiveReloadInject) tr.Apply(out, in, []byte("path")) - expected := fmt.Sprintf(`%s`, bodyEndTag) + expected := fmt.Sprintf(`%s`, bodyEndTag) if string(out.Bytes()) != expected { t.Errorf("Expected %s got %s", expected, string(out.Bytes())) }