github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/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("cmd/app/main.go")
    16  		if err != nil {
    17  			return err
    18  		}
    19  
    20  		opts.rollback.Store(f.Name(), f.String())
    21  		s := strings.Replace(f.String(), "func main()", "func originalMain()", -1)
    22  		f = genny.NewFileS(f.Name(), s)
    23  		return r.File(f)
    24  	}
    25  }