mirror of
https://github.com/cubixle/tuugen.git
synced 2026-04-24 18:34:44 +01:00
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"embed"
|
|
"io/ioutil"
|
|
"log"
|
|
"time"
|
|
)
|
|
|
|
//go:embed templates/*
|
|
var FS embed.FS
|
|
|
|
func main() {
|
|
tNow := time.Now()
|
|
// read config file
|
|
d, err := ioutil.ReadFile("tuugen.yml")
|
|
if err != nil {
|
|
log.Fatalf("failed to find tuugen.yaml, %v", err)
|
|
}
|
|
cfg, err := YamlToConfig(d)
|
|
if err != nil {
|
|
log.Fatalf("failed to load config, %v", err)
|
|
}
|
|
|
|
log.Printf("Generating protos from %s\n", cfg.ProtoFile)
|
|
err = GenerateProtos(cfg.ProtoFile)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Println("Generating service implementation")
|
|
err = GenerateService(FS, cfg)
|
|
if err != nil {
|
|
log.Fatalf("failed to generate service: %v", err)
|
|
}
|
|
log.Println("Generating interactor stubs")
|
|
err = GenerateInteractor(FS, cfg)
|
|
if err != nil {
|
|
log.Fatalf("failed to generate interactor: %v", err)
|
|
}
|
|
|
|
log.Println("Generating data models")
|
|
if err := GenerateDataModels(FS, cfg); err != nil {
|
|
log.Fatalf("failed to generate data models: %v", err)
|
|
}
|
|
|
|
log.Println("Generate main.go")
|
|
if err := GenerateMain(FS, cfg); err != nil {
|
|
log.Fatalf("failed to generate main file: %v", err)
|
|
}
|
|
|
|
log.Printf("Running 'go mod init %s' \n", cfg.ImportPath)
|
|
if err := GoModInit(cfg.ImportPath); err != nil {
|
|
log.Fatalf("failed to run 'go mod init': %v", err)
|
|
}
|
|
log.Println("Running clean up")
|
|
if err := GoFmt(); err != nil {
|
|
log.Fatalf("failed to run gofmt: %v", err)
|
|
}
|
|
if err := GoImports(); err != nil {
|
|
log.Fatalf("failed to run 'goimports': %v", err)
|
|
}
|
|
log.Println("------")
|
|
log.Printf("🎉 All setup has been complete enjoy working on your business logic. took: %s\n", time.Since(tNow))
|
|
log.Println("------")
|
|
}
|