hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit e627449c0a2f1d2ffac29357c4f1832fc5462870
parent c2235c6a62d29e0a9e2e274eb340358a445b695d
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Fri, 14 Aug 2020 12:03:22 +0200

Update to Go 1.15

Fixes #7554

Diffstat:
M.circleci/config.yml | 2+-
M.travis.yml | 4++--
Mgoreleaser.yml | 9+++++++++
Mmagefile.go | 51++++++++++++++++++++++++++++++++++++++++++---------
Msnap/snapcraft.yaml | 2+-
5 files changed, 55 insertions(+), 13 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
@@ -1,6 +1,6 @@
 defaults: &defaults
   docker:
-      - image: bepsays/ci-goreleaser:1.14.3
+      - image: bepsays/ci-goreleaser:1.15.0
   environment:
     CGO_ENABLED: "0"
 
diff --git a/.travis.yml b/.travis.yml
@@ -12,8 +12,8 @@ env:
 git:
   depth: false
 go:
-  - "1.13.11"
-  - "1.14.3"
+  - "1.14.7"
+  - "1.15"
   - master
 
 arch:
diff --git a/goreleaser.yml b/goreleaser.yml
@@ -12,6 +12,9 @@ builds:
     ldflags: -s -w -X github.com/gohugoio/hugo/common/hugo.buildDate={{.Date}} -X github.com/gohugoio/hugo/common/hugo.commitHash={{ .ShortCommit }}
     env:
       - CGO_ENABLED=0
+    flags:
+      - -buildmode
+      - exe
     goos:
       - darwin
       - linux
@@ -39,6 +42,8 @@ builds:
       - CC=x86_64-w64-mingw32-gcc
       - CXX=x86_64-w64-mingw32-g++
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
@@ -53,6 +58,8 @@ builds:
       - CC=o64-clang
       - CXX=o64-clang++
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
@@ -65,6 +72,8 @@ builds:
     env:
       - CGO_ENABLED=1
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
diff --git a/magefile.go b/magefile.go
@@ -42,19 +42,25 @@ func init() {
 	os.Setenv("GO111MODULE", "on")
 }
 
+func runWith(env map[string]string, cmd string, inArgs ...interface{}) error {
+	s := argsToStrings(inArgs...)
+	return sh.RunWith(env, cmd, s...)
+
+}
+
 // Build hugo binary
 func Hugo() error {
-	return sh.RunWith(flagEnv(), goexe, "build", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+	return runWith(flagEnv(), goexe, "build", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Build hugo binary with race detector enabled
 func HugoRace() error {
-	return sh.RunWith(flagEnv(), goexe, "build", "-race", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+	return runWith(flagEnv(), goexe, "build", "-race", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Install hugo binary
 func Install() error {
-	return sh.RunWith(flagEnv(), goexe, "install", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+	return runWith(flagEnv(), goexe, "install", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Uninstall hugo binary
@@ -79,7 +85,7 @@ func Generate() error {
 	}
 
 	for _, pkg := range generatorPackages {
-		if err := sh.RunWith(flagEnv(), goexe, "generate", path.Join(packageName, pkg)); err != nil {
+		if err := runWith(flagEnv(), goexe, "generate", path.Join(packageName, pkg)); err != nil {
 			return err
 		}
 	}
@@ -176,13 +182,13 @@ func Test386() error {
 // Run tests
 func Test() error {
 	env := map[string]string{"GOFLAGS": testGoFlags()}
-	return runCmd(env, goexe, "test", "./...", "-tags", buildTags())
+	return runCmd(env, goexe, "test", "./...", buildFlags(), "-tags", buildTags())
 }
 
 // Run tests with race detector
 func TestRace() error {
 	env := map[string]string{"GOFLAGS": testGoFlags()}
-	return runCmd(env, goexe, "test", "-race", "./...", "-tags", buildTags())
+	return runCmd(env, goexe, "test", "-race", "./...", buildFlags(), "-tags", buildTags())
 }
 
 // Run gofmt linter
@@ -318,11 +324,11 @@ func TestCoverHTML() error {
 	return sh.Run(goexe, "tool", "cover", "-html="+coverAll)
 }
 
-func runCmd(env map[string]string, cmd string, args ...string) error {
+func runCmd(env map[string]string, cmd string, args ...interface{}) error {
 	if mg.Verbose() {
-		return sh.RunWith(env, cmd, args...)
+		return runWith(env, cmd, args...)
 	}
-	output, err := sh.OutputWith(env, cmd, args...)
+	output, err := sh.OutputWith(env, cmd, argsToStrings(args...)...)
 	if err != nil {
 		fmt.Fprint(os.Stderr, output)
 	}
@@ -338,6 +344,13 @@ func isCI() bool {
 	return os.Getenv("CI") != ""
 }
 
+func buildFlags() []string {
+	if runtime.GOOS == "windows" {
+		return []string{"-buildmode", "exe"}
+	}
+	return nil
+}
+
 func buildTags() string {
 	// To build the extended Hugo SCSS/SASS enabled version, build with
 	// HUGO_BUILD_TAGS=extended mage install etc.
@@ -346,3 +359,23 @@ func buildTags() string {
 	}
 	return "none"
 }
+
+func argsToStrings(v ...interface{}) []string {
+	var args []string
+	for _, arg := range v {
+		switch v := arg.(type) {
+		case string:
+			if v != "" {
+				args = append(args, v)
+			}
+		case []string:
+			if v != nil {
+				args = append(args, v...)
+			}
+		default:
+			panic("invalid type")
+		}
+	}
+
+	return args
+}
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
@@ -26,7 +26,7 @@ parts:
 
   hugo:
     plugin: nil
-    build-snaps: [go/1.14/stable]
+    build-snaps: [go/1.15/stable]
     source: .
     override-build: |
       set -ex