1
1
//go:build mage
2
- // +build mage
3
2
4
3
package main
5
4
6
5
import (
7
6
"bytes"
8
- "errors"
9
7
"fmt"
10
8
"os"
11
9
"path"
@@ -36,10 +34,6 @@ func init() {
36
34
if exe := os .Getenv ("GOEXE" ); exe != "" {
37
35
goexe = exe
38
36
}
39
-
40
- // We want to use Go 1.11 modules even if the source lives inside GOPATH.
41
- // The default is "auto".
42
- os .Setenv ("GO111MODULE" , "on" )
43
37
}
44
38
45
39
func runWith (env map [string ]string , cmd string , inArgs ... any ) error {
@@ -122,10 +116,10 @@ func HugoNoGitInfo() error {
122
116
return Hugo ()
123
117
}
124
118
125
- var docker = sh .RunCmd ("docker" )
126
-
127
119
// Build hugo Docker container
128
120
func Docker () error {
121
+ docker := sh .RunCmd ("docker" )
122
+
129
123
if err := docker ("build" , "-t" , "hugo" , "." ); err != nil {
130
124
return err
131
125
}
@@ -148,7 +142,7 @@ func Check() {
148
142
fmt .Printf ("Skip Test386 on %s and/or %s\n " , runtime .GOARCH , runtime .GOOS )
149
143
}
150
144
151
- if isCi () && isDarwin () {
145
+ if isCI () && isDarwin () {
152
146
// Skip on macOS in CI (disk space issues)
153
147
} else {
154
148
mg .Deps (Fmt , Vet )
@@ -200,56 +194,19 @@ func Fmt() error {
200
194
return nil
201
195
}
202
196
203
- var (
204
- pkgPrefixLen = len ("github.com/gohugoio/hugo" )
205
- pkgs []string
206
- pkgsInit sync.Once
207
- )
208
-
209
- func hugoPackages () ([]string , error ) {
210
- var err error
211
- pkgsInit .Do (func () {
212
- var s string
213
- s , err = sh .Output (goexe , "list" , "./..." )
214
- if err != nil {
215
- return
216
- }
217
- pkgs = strings .Split (s , "\n " )
218
- for i := range pkgs {
219
- pkgs [i ] = "." + pkgs [i ][pkgPrefixLen :]
220
- }
221
- })
222
- return pkgs , err
223
- }
197
+ const pkgPrefixLen = len ("github.com/gohugoio/hugo" )
224
198
225
- // Run golint linter
226
- func Lint () error {
227
- pkgs , err := hugoPackages ()
199
+ var hugoPackages = sync .OnceValues (func () ([]string , error ) {
200
+ s , err := sh .Output (goexe , "list" , "./..." )
228
201
if err != nil {
229
- return err
230
- }
231
- failed := false
232
- for _ , pkg := range pkgs {
233
- // We don't actually want to fail this target if we find golint errors,
234
- // so we don't pass -set_exit_status, but we still print out any failures.
235
- if _ , err := sh .Exec (nil , os .Stderr , nil , "golint" , pkg ); err != nil {
236
- fmt .Printf ("ERROR: running go lint on %q: %v\n " , pkg , err )
237
- failed = true
238
- }
202
+ return nil , err
239
203
}
240
- if failed {
241
- return errors .New ("errors running golint" )
204
+ pkgs := strings .Split (s , "\n " )
205
+ for i := range pkgs {
206
+ pkgs [i ] = "." + pkgs [i ][pkgPrefixLen :]
242
207
}
243
- return nil
244
- }
245
-
246
- func isCi () bool {
247
- return os .Getenv ("CI" ) != ""
248
- }
249
-
250
- func isDarwin () bool {
251
- return runtime .GOOS == "darwin"
252
- }
208
+ return pkgs , nil
209
+ })
253
210
254
211
// Run go vet linter
255
212
func Vet () error {
@@ -270,7 +227,7 @@ func TestCoverHTML() error {
270
227
return err
271
228
}
272
229
defer f .Close ()
273
- if _ , err := f .Write ([] byte ( "mode: count" ) ); err != nil {
230
+ if _ , err := f .WriteString ( "mode: count" ); err != nil {
274
231
return err
275
232
}
276
233
pkgs , err := hugoPackages ()
@@ -320,6 +277,10 @@ func isUnix() bool {
320
277
return runtime .GOOS != "windows"
321
278
}
322
279
280
+ func isDarwin () bool {
281
+ return runtime .GOOS == "darwin"
282
+ }
283
+
323
284
func isCI () bool {
324
285
return os .Getenv ("CI" ) != ""
325
286
}
0 commit comments