github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/fix/apptoml.go (about)

     1  package fix
     2  
     3  import (
     4  	"bytes"
     5  	"path/filepath"
     6  
     7  	"github.com/BurntSushi/toml"
     8  	"github.com/gobuffalo/genny/v2"
     9  )
    10  
    11  func EncodeAppToml(opts *Options) genny.RunFn {
    12  	return func(r *genny.Runner) error {
    13  		p := "config/buffalo-app.toml"
    14  		if _, err := r.FindFile(p); err == nil {
    15  			return nil
    16  		}
    17  		dir := genny.NewDir(filepath.Dir(p), 0o755)
    18  		if err := r.File(dir); err != nil {
    19  			return err
    20  		}
    21  
    22  		bb := &bytes.Buffer{}
    23  		if err := toml.NewEncoder(bb).Encode(opts.App); err != nil {
    24  			return err
    25  		}
    26  
    27  		f := genny.NewFile(p, bb)
    28  		return r.File(f)
    29  	}
    30  }