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  }