stash/vendor/github.com/gobuffalo/gogen/fmt.go
2019-05-27 12:34:26 -07:00

40 lines
762 B
Go

package gogen
import (
"bytes"
"github.com/gobuffalo/genny"
"github.com/gobuffalo/gogen/goimports"
"github.com/pkg/errors"
)
func Fmt(root string) (*genny.Generator, error) {
g := genny.New()
g.RunFn(func(r *genny.Runner) error {
i, err := goimports.New(root)
if err != nil {
return errors.WithStack(err)
}
return i.Run()
})
return g, nil
}
func FmtTransformer() genny.Transformer {
t := genny.NewTransformer(".go", func(f genny.File) (genny.File, error) {
bb := &bytes.Buffer{}
gi := goimports.NewFromFiles(goimports.File{
Name: f.Name(),
In: f,
Out: bb,
})
if err := gi.Run(); err != nil {
return f, errors.WithStack(err)
}
f = genny.NewFile(f.Name(), bb)
return f, nil
})
t.StripExt = false
return t
}