github.com/huner2/gomarkdoc@v0.3.6/magefile.go (about) 1 //go:build mage 2 // +build mage 3 4 package main 5 6 import ( 7 "os" 8 "path/filepath" 9 10 "github.com/princjef/mageutil/bintool" 11 "github.com/princjef/mageutil/shellcmd" 12 ) 13 14 var linter = bintool.Must(bintool.New( 15 "golangci-lint{{.BinExt}}", 16 "1.43.0", 17 "https://github.com/golangci/golangci-lint/releases/download/v{{.Version}}/golangci-lint-{{.Version}}-{{.GOOS}}-{{.GOARCH}}{{.ArchiveExt}}", 18 )) 19 20 func Lint() error { 21 if err := linter.Ensure(); err != nil { 22 return err 23 } 24 25 return linter.Command(`run`).Run() 26 } 27 28 func Generate() error { 29 return shellcmd.Command(`go generate .`).Run() 30 } 31 32 func Doc() error { 33 return shellcmd.RunAll( 34 `go run ./cmd/gomarkdoc .`, 35 `go run ./cmd/gomarkdoc --header "" ./lang/...`, 36 `go run ./cmd/gomarkdoc --header "" ./format/...`, 37 `go run ./cmd/gomarkdoc --header "" ./cmd/...`, 38 ) 39 } 40 41 func DocVerify() error { 42 return shellcmd.RunAll( 43 `go run ./cmd/gomarkdoc -c .`, 44 `go run ./cmd/gomarkdoc -c --header "" ./lang/...`, 45 `go run ./cmd/gomarkdoc -c --header "" ./format/...`, 46 `go run ./cmd/gomarkdoc -c --header "" ./cmd/...`, 47 ) 48 } 49 50 func RegenerateTestDocs() error { 51 dirs, err := os.ReadDir("./testData") 52 if err != nil { 53 return err 54 } 55 56 base, err := os.Getwd() 57 if err != nil { 58 return err 59 } 60 61 for _, dir := range dirs { 62 if !dir.IsDir() { 63 continue 64 } 65 66 os.Chdir(filepath.Join(base, "./testData", dir.Name())) 67 if err := shellcmd.Command(`go run ../../cmd/gomarkdoc -o "{{.Dir}}/README.md" ./...`).Run(); err != nil { 68 return err 69 } 70 } 71 72 return nil 73 } 74 75 func Test() error { 76 return shellcmd.Command(`go test -count 1 -coverprofile=coverage.txt ./...`).Run() 77 } 78 79 func Coverage() error { 80 return shellcmd.Command(`go tool cover -html=coverage.txt`).Run() 81 }