go-jamming/main.go

42 lines
947 B
Go

package main
import (
"brainbaking.com/go-jamming/db"
"flag"
"os"
"brainbaking.com/go-jamming/app"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func main() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
verboseFlag := flag.Bool("verbose", false, "Verbose mode (pretty print log, debug level)")
migrateFlag := flag.Bool("migrate", false, "Run migration scripts for the DB and exit.")
flag.Parse()
// logs by default to Stderr (/var/log/syslog). Rolling files possible via lumberjack.
zerolog.SetGlobalLevel(zerolog.InfoLevel)
if *verboseFlag == true || *migrateFlag == true {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
if *migrateFlag == true {
migrate()
os.Exit(0)
}
log.Debug().Msg("Let's a go!")
app.Start()
}
func migrate() {
log.Info().Msg("Starting db migration...")
db.Migrate()
log.Info().Msg("Migration ended, exiting.")
}