github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/newapp/mod.go (about) 1 package newapp 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 8 "github.com/gobuffalo/buffalo-cli/v2/cli/internal/plugins/golang/mod" 9 "github.com/gobuffalo/plugins" 10 ) 11 12 func (cmd *Cmd) modInit(ctx context.Context, root string, name string) error { 13 mi := &mod.Initer{} 14 var miplugs []plugins.Plugin 15 16 if cmd.pluginsFn != nil { 17 miplugs = cmd.pluginsFn() 18 } 19 20 fp := os.Getenv("BUFFALO_CLI") 21 if len(fp) == 0 { 22 err := mi.ModInit(ctx, root, name) 23 return plugins.Wrap(cmd, err) 24 } 25 26 if _, err := os.Stat(fp); err != nil { 27 return plugins.Wrap(cmd, err) 28 } 29 30 rel, err := filepath.Rel(root, fp) 31 if err != nil { 32 return plugins.Wrap(cmd, err) 33 } 34 rel = filepath.Dir(rel) 35 36 fn := func(root string) map[string]string { 37 return map[string]string{ 38 "github.com/gobuffalo/buffalo-cli/v2": filepath.Join(rel, "/buffalo-cli"), 39 } 40 } 41 42 miplugs = append(miplugs, devReplacer(fn)) 43 mi.WithPlugins(func() []plugins.Plugin { 44 return miplugs 45 }) 46 47 pwd, err := os.Getwd() 48 if err != nil { 49 return plugins.Wrap(cmd, err) 50 } 51 defer os.Chdir(pwd) 52 os.Chdir(root) 53 54 err = mi.ModInit(ctx, root, name) 55 return plugins.Wrap(cmd, err) 56 }