github.com/phsym/gomarkdoc@v0.5.4/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.45.2",
    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 ./...`).Run()
    81  }
    82  
    83  func Coverage() error {
    84  	return shellcmd.Command(`go tool cover -html=coverage.txt`).Run()
    85  }