53 lines
		
	
	
	
		
			938 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			938 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package mkflex
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"os"
 | |
| 
 | |
| 	conutils "codeberg.org/danjones000/utils/convids"
 | |
| 	mkutils "codeberg.org/danjones000/utils/mkflex"
 | |
| 	"gopkg.in/yaml.v3"
 | |
| )
 | |
| 
 | |
| func NewApp(ctx context.Context, name string, args []string, dataPath, templatePath, outPath string) (*App, error) {
 | |
| 	var err error
 | |
| 	a := App{
 | |
| 		Name: name,
 | |
| 		Path: outPath,
 | |
| 	}
 | |
| 
 | |
| 	a.Data, err = conutils.NewData(dataPath)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	a.Config, err = mkutils.NewConfig(templatePath)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	return &a, nil
 | |
| }
 | |
| 
 | |
| type App struct {
 | |
| 	Name   string
 | |
| 	Data   *conutils.Data
 | |
| 	Path   string
 | |
| 	Config *mkutils.Config
 | |
| }
 | |
| 
 | |
| func (a *App) Run(ctx context.Context) error {
 | |
| 	out, err := os.Create(a.Path)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	enc := yaml.NewEncoder(out)
 | |
| 	enc.SetIndent(2)
 | |
| 
 | |
| 	if err := mkutils.AddShows(a.Config, a.Data); err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	delete(a.Config.Templates, "x-aliases")
 | |
| 
 | |
| 	return enc.Encode(a.Config)
 | |
| }
 |