github.com/anthonyme00/gomarkdoc@v1.0.0/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-github.md" --format github ./...`).Run(); err != nil {
    68  			return err
    69  		}
    70  
    71  		if err := shellcmd.Command(`go run ../../cmd/gomarkdoc -o "{{.Dir}}/README-plain.md" --format plain ./...`).Run(); err != nil {
    72  			return err
    73  		}
    74  
    75  		if err := shellcmd.Command(`go run ../../cmd/gomarkdoc -o "{{.Dir}}/README-azure-devops.md" --format azure-devops ./...`).Run(); err != nil {
    76  			return err
    77  		}
    78  	}
    79  
    80  	return nil
    81  }
    82  
    83  func Test() error {
    84  	return shellcmd.Command(`go test -count 1 -coverpkg=.,./cmd/...,./format/...,./lang/...,./logger/... -cover -coverprofile=coverage.txt ./...`).Run()
    85  }
    86  
    87  func Coverage() error {
    88  	return shellcmd.Command(`go tool cover -html=coverage.txt`).Run()
    89  }