github.com/wawandco/ox@v0.13.6-0.20230809142027-913b3d837f2a/plugins/tools/ox/model/initializer.go (about) 1 package model 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 8 "github.com/wawandco/ox/internal/source" 9 "github.com/wawandco/ox/plugins/base/new" 10 ) 11 12 // Initializer 13 type Initializer struct{} 14 15 func (i Initializer) Name() string { 16 return "model/initializer" 17 } 18 19 func (i *Initializer) Initialize(ctx context.Context, options new.Options) error { 20 tmpl, err := Templates.ReadFile("templates/models.go.tmpl") 21 if err != nil { 22 return err 23 } 24 25 filename := filepath.Join(options.Folder, "app", "models", "models.go") 26 err = source.Build(filename, string(tmpl), options.Module) 27 if err != nil { 28 return err 29 } 30 31 tmpl, err = Templates.ReadFile("templates/models_test.go.tmpl") 32 if err != nil { 33 return err 34 } 35 36 filename = filepath.Join(options.Folder, "app", "models", "models_test.go") 37 err = os.WriteFile(filename, tmpl, 0777) 38 if err != nil { 39 return err 40 } 41 42 return nil 43 }