github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/build/transform_main.go (about)

     1  package build
     2  
     3  import (
     4  	"strings"
     5  	"sync"
     6  
     7  	"github.com/gobuffalo/genny/v2"
     8  )
     9  
    10  func transformMain(opts *Options) genny.RunFn {
    11  	if opts.rollback == nil {
    12  		opts.rollback = &sync.Map{}
    13  	}
    14  	return func(r *genny.Runner) error {
    15  		f, err := r.FindFile("main.go")
    16  		if err != nil {
    17  			return err
    18  		}
    19  		opts.rollback.Store(f.Name(), f.String())
    20  		s := strings.Replace(f.String(), "func main()", "func originalMain()", -1)
    21  		f = genny.NewFile(f.Name(), strings.NewReader(s))
    22  		return r.File(f)
    23  	}
    24  }