github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/buffalo/cmd/fix/docker.go (about) 1 package fix 2 3 import ( 4 "context" 5 "fmt" 6 "path/filepath" 7 "regexp" 8 "strings" 9 10 "github.com/gobuffalo/buffalo/runtime" 11 "github.com/gobuffalo/genny/v2" 12 ) 13 14 func fixDocker(r *Runner) error { 15 app := r.App 16 if !app.WithDocker { 17 return nil 18 } 19 fmt.Println("~~~ Upgrading Dockerfile ~~~") 20 run := genny.WetRunner(context.Background()) 21 run.WithRun(func(r *genny.Runner) error { 22 dk, err := r.FindFile(filepath.Join(app.Root, "Dockerfile")) 23 if err != nil { 24 return err 25 } 26 27 ex := regexp.MustCompile(`(v[0-9.][\S]+)`) 28 lines := strings.Split(dk.String(), "\n") 29 for i, l := range lines { 30 if strings.HasPrefix(strings.ToLower(l), "from gobuffalo/buffalo") { 31 l = ex.ReplaceAllString(l, runtime.Version) 32 lines[i] = l 33 } 34 } 35 return r.File(genny.NewFileS(dk.Name(), strings.Join(lines, "\n"))) 36 }) 37 return run.Run() 38 }