From 9d35acca9b18e7592db2bffc3cd9749e4f0e2b85 Mon Sep 17 00:00:00 2001 From: cubixle Date: Wed, 16 Jun 2021 22:20:47 +0100 Subject: [PATCH] wip --- db.go | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/db.go b/db.go index 95bc30e..cb58707 100644 --- a/db.go +++ b/db.go @@ -1,5 +1,11 @@ package tuugen +import ( + "html/template" + "path/filepath" + "os" +) + type DataModel struct { Name string `yaml:"name"` Properties []DataProperty `yaml:"properties"` @@ -12,12 +18,25 @@ type DataProperty struct { } func GenerateDataModels(cfg Config) error { - t, err := template.ParseFS(FS, "templates/data_model.go.tmpl") - if err != nil { - return err - } + for _, dm := range cfg.DataModels { + t, err := template.ParseFS(FS, "templates/data_model.go.tmpl") + if err != nil { + return err + } - outputFile := "internal/data/models.go" - // check/create file path - fp := filepath.Dir(outputFile) -} \ No newline at end of file + outputFile := "internal/data/models.go" + fp := filepath.Dir(outputFile) + if err := os.MkdirAll(fp, 0777); err != nil { + return err + } + + f, err := os.Create(outputFile) + if err != nil { + return nil + } + + if err := t.Execute(f, dm); err != nil { + return err + } + } +}