github.com/taylorchu/generic@v0.0.0-20171113184323-cd81575befa2/cmd/generic/config_v1.go (about) 1 package main 2 3 import ( 4 "strings" 5 6 "github.com/taylorchu/generic/rewrite" 7 ) 8 9 // ConfigV1 specifies rewrite inputs. 10 type ConfigV1 rewrite.Spec 11 12 // NewConfig creates a new rewrite context. 13 func NewConfig(pkgPath, newPkgPath string, rules ...string) (*ConfigV1, error) { 14 c := &ConfigV1{ 15 Import: pkgPath, 16 } 17 if strings.HasPrefix(newPkgPath, ".") { 18 c.Local = true 19 c.Name = strings.TrimPrefix(newPkgPath, ".") 20 } else { 21 c.Name = newPkgPath 22 } 23 24 typeMap, err := ParseTypeMap(rules) 25 if err != nil { 26 return nil, err 27 } 28 c.TypeMap = typeMap 29 30 return c, nil 31 } 32 33 func (c1 *ConfigV1) RewritePackage() error { 34 spec := rewrite.Spec(*c1) 35 c := rewrite.Config{ 36 Spec: []*rewrite.Spec{&spec}, 37 } 38 return c.RewritePackage() 39 }