Files

42 lines
926 B
Go

package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/sundynix/pets-be/internal/admin"
"github.com/sundynix/pets-be/internal/config"
"github.com/sundynix/pets-be/internal/database"
"github.com/sundynix/pets-be/internal/httpapi"
"github.com/sundynix/pets-be/internal/storage"
"log"
)
func main() {
cfg, err := config.Load()
if err != nil {
log.Fatal(err)
}
db, err := database.Open(cfg.Postgres, cfg.Server.Mode == "release")
if err != nil {
log.Fatal(err)
}
if err := database.Migrate(db); err != nil {
log.Fatal(err)
}
st, err := storage.New(cfg.MinIO)
if err != nil {
log.Fatal(err)
}
api := httpapi.New(db, st, cfg)
if err := api.SeedAdmin(); err != nil {
log.Fatal(err)
}
gin.SetMode(cfg.Server.Mode)
r := gin.New()
api.Register(r)
admin.Register(r)
addr := fmt.Sprintf(":%d", cfg.Server.Port)
log.Printf("肉垫计划 listening on %s", addr)
log.Fatal(r.Run(addr))
}