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