diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-24 08:43:09 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-24 11:29:01 +0100 |
commit | 8afd7d9ceb0d168300e3399c6e87a355a88c9a28 (patch) | |
tree | 8ee8094c00b740687ef7fafbc52e106da4753e66 /commands/server.go | |
parent | 42fbf15fb7727a95d135488f6e3d84d04d717361 (diff) |
commands: Fix broken --appendPort=false
Also make sure to log the correct server URL to the console.
Fixes #4111
Diffstat (limited to 'commands/server.go')
-rw-r--r-- | commands/server.go | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/commands/server.go b/commands/server.go index 666f255e3..e1cc56749 100644 --- a/commands/server.go +++ b/commands/server.go @@ -145,6 +145,9 @@ func server(cmd *cobra.Command, args []string) error { serverPorts := make([]int, 1) if languages.IsMultihost() { + if !serverAppend { + return newSystemError("--appendPort=false not supported when in multihost mode") + } serverPorts = make([]int, len(languages)) } @@ -171,6 +174,8 @@ func server(cmd *cobra.Command, args []string) error { currentServerPort = serverPorts[i] + 1 } + c.serverPorts = serverPorts + c.Set("port", serverPort) if liveReloadPort != -1 { c.Set("liveReloadPort", liveReloadPort) @@ -246,16 +251,15 @@ func server(cmd *cobra.Command, args []string) error { } type fileServer struct { - ports []int baseURLs []string roots []string c *commandeer } -func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, error) { +func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, error) { baseURL := f.baseURLs[i] root := f.roots[i] - port := f.ports[i] + port := f.c.serverPorts[i] publishDir := f.c.Cfg.GetString("publishDir") @@ -286,7 +290,7 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, error) { // We're only interested in the path u, err := url.Parse(baseURL) if err != nil { - return nil, "", fmt.Errorf("Invalid baseURL: %s", err) + return nil, "", "", fmt.Errorf("Invalid baseURL: %s", err) } decorate := func(h http.Handler) http.Handler { @@ -317,7 +321,7 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, error) { endpoint := net.JoinHostPort(serverInterface, strconv.Itoa(port)) - return mu, endpoint, nil + return mu, u.String(), endpoint, nil } func (c *commandeer) serve() { @@ -327,24 +331,20 @@ func (c *commandeer) serve() { var ( baseURLs []string roots []string - ports []int ) if isMultiHost { for _, s := range Hugo.Sites { baseURLs = append(baseURLs, s.BaseURL.String()) roots = append(roots, s.Language.Lang) - ports = append(ports, s.Info.ServerPort()) } } else { s := Hugo.Sites[0] baseURLs = []string{s.BaseURL.String()} roots = []string{""} - ports = append(ports, s.Info.ServerPort()) } srv := &fileServer{ - ports: ports, baseURLs: baseURLs, roots: roots, c: c, @@ -357,13 +357,13 @@ func (c *commandeer) serve() { } for i, _ := range baseURLs { - mu, endpoint, err := srv.createEndpoint(i) + mu, serverURL, endpoint, err := srv.createEndpoint(i) if doLiveReload { mu.HandleFunc("/livereload.js", livereload.ServeJS) mu.HandleFunc("/livereload", livereload.Handler) } - jww.FEEDBACK.Printf("Web Server is available at %s (bind address %s)\n", endpoint, serverInterface) + jww.FEEDBACK.Printf("Web Server is available at %s (bind address %s)\n", serverURL, serverInterface) go func() { err = http.ListenAndServe(endpoint, mu) if err != nil { |