mage: Simplify magefile
This commit is contained in:
parent
7104de83ce
commit
3bd73d262d
1 changed files with 17 additions and 56 deletions
73
magefile.go
73
magefile.go
|
@ -1,11 +1,9 @@
|
||||||
//go:build mage
|
//go:build mage
|
||||||
// +build mage
|
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
@ -36,10 +34,6 @@ func init() {
|
||||||
if exe := os.Getenv("GOEXE"); exe != "" {
|
if exe := os.Getenv("GOEXE"); exe != "" {
|
||||||
goexe = exe
|
goexe = exe
|
||||||
}
|
}
|
||||||
|
|
||||||
// We want to use Go 1.11 modules even if the source lives inside GOPATH.
|
|
||||||
// The default is "auto".
|
|
||||||
os.Setenv("GO111MODULE", "on")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func runWith(env map[string]string, cmd string, inArgs ...any) error {
|
func runWith(env map[string]string, cmd string, inArgs ...any) error {
|
||||||
|
@ -122,10 +116,10 @@ func HugoNoGitInfo() error {
|
||||||
return Hugo()
|
return Hugo()
|
||||||
}
|
}
|
||||||
|
|
||||||
var docker = sh.RunCmd("docker")
|
|
||||||
|
|
||||||
// Build hugo Docker container
|
// Build hugo Docker container
|
||||||
func Docker() error {
|
func Docker() error {
|
||||||
|
docker := sh.RunCmd("docker")
|
||||||
|
|
||||||
if err := docker("build", "-t", "hugo", "."); err != nil {
|
if err := docker("build", "-t", "hugo", "."); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -148,7 +142,7 @@ func Check() {
|
||||||
fmt.Printf("Skip Test386 on %s and/or %s\n", runtime.GOARCH, runtime.GOOS)
|
fmt.Printf("Skip Test386 on %s and/or %s\n", runtime.GOARCH, runtime.GOOS)
|
||||||
}
|
}
|
||||||
|
|
||||||
if isCi() && isDarwin() {
|
if isCI() && isDarwin() {
|
||||||
// Skip on macOS in CI (disk space issues)
|
// Skip on macOS in CI (disk space issues)
|
||||||
} else {
|
} else {
|
||||||
mg.Deps(Fmt, Vet)
|
mg.Deps(Fmt, Vet)
|
||||||
|
@ -200,56 +194,19 @@ func Fmt() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
const pkgPrefixLen = len("github.com/gohugoio/hugo")
|
||||||
pkgPrefixLen = len("github.com/gohugoio/hugo")
|
|
||||||
pkgs []string
|
|
||||||
pkgsInit sync.Once
|
|
||||||
)
|
|
||||||
|
|
||||||
func hugoPackages() ([]string, error) {
|
var hugoPackages = sync.OnceValues(func() ([]string, error) {
|
||||||
var err error
|
s, err := sh.Output(goexe, "list", "./...")
|
||||||
pkgsInit.Do(func() {
|
|
||||||
var s string
|
|
||||||
s, err = sh.Output(goexe, "list", "./...")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
pkgs = strings.Split(s, "\n")
|
|
||||||
for i := range pkgs {
|
|
||||||
pkgs[i] = "." + pkgs[i][pkgPrefixLen:]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return pkgs, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run golint linter
|
|
||||||
func Lint() error {
|
|
||||||
pkgs, err := hugoPackages()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
failed := false
|
pkgs := strings.Split(s, "\n")
|
||||||
for _, pkg := range pkgs {
|
for i := range pkgs {
|
||||||
// We don't actually want to fail this target if we find golint errors,
|
pkgs[i] = "." + pkgs[i][pkgPrefixLen:]
|
||||||
// so we don't pass -set_exit_status, but we still print out any failures.
|
|
||||||
if _, err := sh.Exec(nil, os.Stderr, nil, "golint", pkg); err != nil {
|
|
||||||
fmt.Printf("ERROR: running go lint on %q: %v\n", pkg, err)
|
|
||||||
failed = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if failed {
|
return pkgs, nil
|
||||||
return errors.New("errors running golint")
|
})
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func isCi() bool {
|
|
||||||
return os.Getenv("CI") != ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func isDarwin() bool {
|
|
||||||
return runtime.GOOS == "darwin"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run go vet linter
|
// Run go vet linter
|
||||||
func Vet() error {
|
func Vet() error {
|
||||||
|
@ -270,7 +227,7 @@ func TestCoverHTML() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
if _, err := f.Write([]byte("mode: count")); err != nil {
|
if _, err := f.WriteString("mode: count"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
pkgs, err := hugoPackages()
|
pkgs, err := hugoPackages()
|
||||||
|
@ -320,6 +277,10 @@ func isUnix() bool {
|
||||||
return runtime.GOOS != "windows"
|
return runtime.GOOS != "windows"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isDarwin() bool {
|
||||||
|
return runtime.GOOS == "darwin"
|
||||||
|
}
|
||||||
|
|
||||||
func isCI() bool {
|
func isCI() bool {
|
||||||
return os.Getenv("CI") != ""
|
return os.Getenv("CI") != ""
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue