shithub: hugo

Download patch

ref: 1abc2f0b8663a3082c509157952bb756bcd38f92
parent: a10519643d58abe823c17f3d4cd3a9dd26f89403
author: Matt Way <[email protected]>
date: Thu Nov 21 19:28:05 EST 2013

properly use non-localhost BaseUrl in server command

--- a/commands/server.go
+++ b/commands/server.go
@@ -18,6 +18,7 @@
 	"github.com/spf13/cobra"
 	"net/http"
 	"strconv"
+	"strings"
 )
 
 var serverPort int
@@ -40,11 +41,16 @@
 func server(cmd *cobra.Command, args []string) {
 	InitializeConfig()
 
-	// Unless command line overrides, we use localhost for the server
 	if BaseUrl == "" {
-		Config.BaseUrl = "http://localhost:" + strconv.Itoa(serverPort)
+		BaseUrl = "http://localhost"
 	}
 
+	if !strings.HasPrefix(BaseUrl, "http://") {
+		BaseUrl = "http://" + BaseUrl
+	}
+
+	Config.BaseUrl = strings.TrimSuffix(BaseUrl, "/") + ":" + strconv.Itoa(serverPort)
+
 	build(serverWatch)
 
 	// Watch runs its own server as part of the routine
@@ -64,7 +70,7 @@
 		fmt.Println("Serving pages from " + Config.GetAbsPath(Config.PublishDir))
 	}
 
-	fmt.Printf("Web Server is available at http://localhost:%v\n", port)
+	fmt.Printf("Web server is available at %s\n", Config.BaseUrl)
 	fmt.Println("Press ctrl+c to stop")
 	panic(http.ListenAndServe(":"+strconv.Itoa(port), http.FileServer(http.Dir(Config.GetAbsPath(Config.PublishDir)))))
 }