123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package got
- import (
- "fmt"
- "strings"
- . "git.eugeniocarvalho.dev/eugeniucarvalho/apicodegen/common"
- "git.eugeniocarvalho.dev/eugeniucarvalho/utils"
- G "github.com/dave/jennifer/jen"
- "github.com/davecgh/go-spew/spew"
- // . "git.eugeniocarvalho.dev/eugeniucarvalho/apicodegen/gen"
- )
- func CreateMainFile(project *Project) (err error) {
- spew.Dump(project.Custom)
- var (
- Index = G.NewFile("main")
- address = strings.Join(strings.Split(project.BaseURL, ":")[1:], ":")
- goPackageRepository = project.Custom["go.package.repository"].(string)
- )
- address = strings.Replace(address, "//", "", -1)
- Index.Id(`import (
-
- `).Id(project.ID).Lit(goPackageRepository+"/build/v1").Id(`
- models `).Lit(goPackageRepository+"/build/v1/models").Id(`
- "git.eugeniocarvalho.dev/eugeniucarvalho/apicodegen/api" // Pacotes do framework web
- "os"
- "fmt"
- iris "github.com/kataras/iris/v12"
- "github.com/kataras/iris/v12/middleware/recover"
- )
- func main() {
- var (
- err error
- )
-
- if err = `).Id(project.ID).Id(`.InitEnvironment(); err != nil {
- panic(err)
- }
- app := iris.New()
- app.Logger().SetLevel("debug")
- // Optionally, add two built'n handlers
- // that can recover from any http-relative panics
- // and log the requests to the terminal.
- app.Use(recover.New())
- app.Use(`).Qual("github.com/kataras/iris/v12/middleware/logger", "New").Id(`())
-
- app.Use(api.DefaultCorsHandler())
-
- api.BuildVersion = `).Id(fmt.Sprintf(`"%s"`, project.BuildVersion)).Id(`
- // session := &api.Mongo{ Config: os.Getenv("MONGO_CONFIG") }
- models.Api.Config = os.Getenv("MONGO_CONFIG")
-
- if err = models.Api.Init(); err != nil {
- panic(err)
- }
-
- if err = `).Id(fmt.Sprintf("%s.AppInitialize(app)", project.ID)).Id(`; err != nil {
- panic(err)
- }
- `).Id(project.ID).Id(`.Register(app)
- fmt.Println("API_VERSION: ", api.BuildVersion)
- app.Run(iris.Addr(os.Getenv("APP_ADDRS")), iris.WithoutServerError(iris.ErrServerClosed))
- }
- `)
- if err = Write(fmt.Sprintf("%s/main.go", project.OutPath), Index); err != nil {
- return
- }
- path := fmt.Sprintf("%s/v1/app_initialize.go", project.OutPath)
- if !utils.FileExists(path) {
- AppInitialize := G.NewFile("v1")
- AppInitialize.Id(`
- import(
- iris "github.com/kataras/iris/v12"
- )
- func AppInitialize(app *iris.Application) error {
- return nil
- }
- `)
- if err = Write(path, AppInitialize); err != nil {
- return
- }
- }
- return nil
- }
- // app.RegisterView(iris.HTML("./public", ".html"))
- // app.Get("/", func(ctx iris.Context) {
- // ctx.View("index.html")
- // })
- // app.HandleDir("/", "./public", iris.DirOptions{
- // Asset: Asset,
- // AssetInfo: AssetInfo,
- // AssetNames: AssetNames,
- // // IndexName: "index.html", // default.
- // // If you want to show a list of embedded files when inside a directory without an index file:
- // // ShowList: true,
- // // DirList: func(ctx iris.Context, dirName string, f http.File) error {
- // // // [Optional, custom code to show the html list].
- // // }
- // })
- // app.SPA(app.StaticHandler("./public", false, false))
|