github.com/ajatprabha/gomarkdoc@v0.0.0-20230705102225-9d169ea523ff/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.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 --timeout 5m`).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 "" --exclude-dirs . --exclude-dirs ./testData/... ./...`, 40 ) 41 } 42 43 func DocVerify() error { 44 return shellcmd.RunAll( 45 `go run ./cmd/gomarkdoc -c .`, 46 `go run ./cmd/gomarkdoc -c --header "" --exclude-dirs . --exclude-dirs ./testData/... ./...`, 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 -coverpkg=.,./cmd/...,./format/...,./lang/...,./logger/... -cover -coverprofile=coverage.txt ./...`).Run() 77 } 78 79 func Coverage() error { 80 return shellcmd.Command(`go tool cover -html=coverage.txt`).Run() 81 }