yt-gen-app/lib/backend.go

47 lines
1.4 KiB
Go

package lib
import (
"log"
"os"
"path/filepath"
"strings"
)
func Backend() {
generateDB()
}
// Генерирование структуры БД
func generateDB() {
if err := os.MkdirAll(filepath.Join(AppConfig.OutdirBackend, "db", "model"), 0775); err != nil {
log.Fatal(err)
}
generateModelBase()
}
func generateModelBase() {
if err := WriteTmplFile("tmpl/backend/db/model/base.tmpl", filepath.Join(AppConfig.OutdirBackend, "db", "model", "base.go")); err != nil {
log.Fatal(err)
}
if err := WriteTmplFile("tmpl/backend/db/model/base-int.tmpl", filepath.Join(AppConfig.OutdirBackend, "db", "model", "base-int.go")); err != nil {
log.Fatal(err)
}
if err := WriteTmplFile("tmpl/backend/db/transaction.tmpl", filepath.Join(AppConfig.OutdirBackend, "db", "transaction.go")); err != nil {
log.Fatal(err)
}
if err := PrepareTmplFile("tmpl/backend/go.tmpl", Project, filepath.Join(AppConfig.OutdirBackend, "go.mod")); err != nil {
log.Fatal(err)
}
if err := PrepareTmplFile("tmpl/backend/db/db.tmpl", Project, filepath.Join(AppConfig.OutdirBackend, "db", "db.go")); err != nil {
log.Fatal(err)
}
if len(Project.DB.Tables) > 0 {
for _, table := range Project.DB.Tables {
if err := PrepareTmplFile("tmpl/backend/db/model/model.tmpl", table, filepath.Join(AppConfig.OutdirBackend, "db", "model", strings.ToLower(table.Name)+".go")); err != nil {
log.Fatal(err)
}
}
}
}