summaryrefslogtreecommitdiffstats
path: root/commands/server.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-11-24 08:43:09 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-11-24 11:29:01 +0100
commit8afd7d9ceb0d168300e3399c6e87a355a88c9a28 (patch)
tree8ee8094c00b740687ef7fafbc52e106da4753e66 /commands/server.go
parent42fbf15fb7727a95d135488f6e3d84d04d717361 (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.go22
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 {