utils/internal/cli/mkflex/app.go

54 lines
938 B
Go
Raw Normal View History

2025-07-16 11:40:25 -05:00
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)
}