github.com/rmarku/gomarkdoc@v0.0.0-20230517164305-78688ebe4325/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/rmarku/mageutil/bintool" 11 "github.com/rmarku/mageutil/shellcmd" 12 ) 13 14 var linter = bintool.Must(bintool.New( 15 "golangci-lint{{.BinExt}}", 16 "1.51.1", 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 Build() error { 33 return shellcmd.Command(`go build -o ./bin/gomarkdoc ./cmd/gomarkdoc`).Run() 34 } 35 36 func Doc() error { 37 return shellcmd.RunAll( 38 `go run ./cmd/gomarkdoc .`, 39 `go run ./cmd/gomarkdoc --header "" ./lang/...`, 40 `go run ./cmd/gomarkdoc --header "" ./format/...`, 41 `go run ./cmd/gomarkdoc --header "" ./cmd/...`, 42 ) 43 } 44 45 func DocVerify() error { 46 return shellcmd.RunAll( 47 `go run ./cmd/gomarkdoc -c .`, 48 `go run ./cmd/gomarkdoc -c --header "" ./lang/...`, 49 `go run ./cmd/gomarkdoc -c --header "" ./format/...`, 50 `go run ./cmd/gomarkdoc -c --header "" ./cmd/...`, 51 ) 52 } 53 54 func RegenerateTestDocs() error { 55 dirs, err := os.ReadDir("./testData") 56 if err != nil { 57 return err 58 } 59 60 base, err := os.Getwd() 61 if err != nil { 62 return err 63 } 64 65 for _, dir := range dirs { 66 if !dir.IsDir() { 67 continue 68 } 69 70 os.Chdir(filepath.Join(base, "./testData", dir.Name())) 71 if err := shellcmd.Command(`go run ../../cmd/gomarkdoc -o "{{.Dir}}/README.md" ./...`).Run(); err != nil { 72 return err 73 } 74 } 75 76 return nil 77 } 78 79 func Test() error { 80 return shellcmd.Command(`go test -count 1 -coverprofile=coverage.txt . ./cmd/... ./format/... ./lang/... ./logger/...`).Run() 81 } 82 83 func Coverage() error { 84 return shellcmd.Command(`go tool cover -html=coverage.txt`).Run() 85 }