1package main
2
3import (
4	"github.com/mgutz/goa"
5	f "github.com/mgutz/goa/filter"
6	"github.com/mgutz/str"
7
8	do "gopkg.in/godo.v2"
9	"gopkg.in/godo.v2/util"
10)
11
12// Project is local project.
13func tasks(p *do.Project) {
14	p.Task("default", do.S{"readme"}, nil)
15
16	p.Task("install", nil, func(c *do.Context) {
17		c.Run("go get github.com/robertkrimen/godocdown/godocdown")
18	})
19
20	p.Task("lint", nil, func(c *do.Context) {
21		c.Run("golint .")
22		c.Run("gofmt -w -s .")
23		c.Run("go vet .")
24		c.Run("go test")
25	})
26
27	p.Task("readme", nil, func(c *do.Context) {
28		c.Run("godocdown -output README.md")
29
30		packageName, _ := util.PackageName("doc.go")
31
32		// add godoc link
33		goa.Pipe(
34			f.Load("./README.md"),
35			f.Str(str.ReplaceF("--", "\n[godoc](https://godoc.org/"+packageName+")\n", 1)),
36			f.Write(),
37		)
38	}).Src("**/*.go")
39
40	p.Task("test", nil, func(c *do.Context) {
41		c.Run("go test")
42	})
43}
44
45func main() {
46	do.Godo(tasks)
47}
48