github.com/wawandco/ox@v0.13.6-0.20230809142027-913b3d837f2a/plugins/tools/flect/initializer.go (about)

     1  package flect
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  
     7  	"github.com/wawandco/ox/internal/log"
     8  	"github.com/wawandco/ox/plugins/base/new"
     9  )
    10  
    11  type Initializer struct{}
    12  
    13  func (i Initializer) Name() string {
    14  	return "flect/initializer"
    15  }
    16  
    17  func (i *Initializer) Initialize(ctx context.Context, options new.Options) error {
    18  
    19  	yml := options.Folder + "/inflections.yml"
    20  	content := `{ "singular": "plural" }`
    21  
    22  	_, err := os.Stat(yml)
    23  	if err == nil {
    24  		log.Warn("inflections.yml file already exist, skipping generation")
    25  
    26  		return nil
    27  	}
    28  
    29  	if !os.IsNotExist(err) {
    30  		return err
    31  	}
    32  	// create file if it does not exist
    33  	file, err := os.Create(yml)
    34  	if err != nil {
    35  		return (err)
    36  	}
    37  
    38  	_, err = os.OpenFile(yml, os.O_RDWR, 0644)
    39  	if err != nil {
    40  		return (err)
    41  	}
    42  
    43  	_, err = file.WriteString(content)
    44  	if err != nil {
    45  		return (err)
    46  	}
    47  
    48  	file.Close()
    49  
    50  	return nil
    51  }