mirror of
https://github.com/ordinary-dev/phoenix
synced 2024-09-20 03:40:29 +05:00
Ivan R.
5aa2cee5b1
Since I started simplifying, I decided to abandon ORM. I won’t say that this makes much sense, everything works more or less as before. Except that the size of the program has decreased slightly again, by about a megabyte.
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/ordinary-dev/phoenix/config"
|
|
"github.com/ordinary-dev/phoenix/database"
|
|
"github.com/ordinary-dev/phoenix/views"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func main() {
|
|
// Configure logger
|
|
log.SetFormatter(&log.TextFormatter{
|
|
FullTimestamp: true,
|
|
})
|
|
|
|
// Read config
|
|
cfg, err := config.GetConfig()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Set log level
|
|
logLevel := cfg.GetLogLevel()
|
|
log.SetLevel(logLevel)
|
|
log.Infof("Setting log level to %v", logLevel)
|
|
|
|
// Connect to the database
|
|
err = database.EstablishDatabaseConnection(cfg)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Apply migrations.
|
|
if err := database.ApplyMigrations(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Create the first user
|
|
if cfg.DefaultUsername != "" && cfg.DefaultPassword != "" {
|
|
adminCount, err := database.CountAdmins()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
if adminCount < 1 {
|
|
_, err := database.CreateAdmin(cfg.DefaultUsername, cfg.DefaultPassword)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
server, err := views.GetHttpServer()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
server.ListenAndServe()
|
|
}
|