github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/build/apkg.go (about) 1 package build 2 3 import ( 4 "os/exec" 5 6 "github.com/gobuffalo/genny/v2" 7 ) 8 9 func apkg(opts *Options) (*genny.Generator, error) { 10 g := genny.New() 11 12 if err := opts.Validate(); err != nil { 13 return g, err 14 } 15 16 g.RunFn(copyInflections) 17 g.RunFn(copyDatabase) 18 g.RunFn(addDependencies) 19 20 return g, nil 21 } 22 23 func addDependencies(r *genny.Runner) error { 24 return r.Exec(exec.Command("go", "mod", "tidy")) 25 } 26 27 func copyDatabase(r *genny.Runner) error { 28 defer func() { 29 r.Disk.Remove("database.yml") 30 }() 31 f, err := r.FindFile("database.yml") 32 if err != nil { 33 f, err = r.FindFile("config/database.yml") 34 if err != nil { 35 // it's ok to not have this file 36 return nil 37 } 38 } 39 return r.File(genny.NewFile("a/database.yml", f)) 40 } 41 42 func copyInflections(r *genny.Runner) error { 43 defer func() { 44 r.Disk.Remove("inflections.json") 45 }() 46 f, err := r.FindFile("inflections.json") 47 if err != nil { 48 // it's ok to not have this file 49 return nil 50 } 51 return r.File(genny.NewFile("a/inflections.json", f)) 52 }