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)))))
}