2021-04-07 09:24:25 +02:00
|
|
|
package main
|
|
|
|
|
2021-04-07 10:06:16 +02:00
|
|
|
import (
|
2021-04-19 20:22:38 +02:00
|
|
|
"brainbaking.com/go-jamming/db"
|
2021-04-11 20:37:26 +02:00
|
|
|
"flag"
|
2021-04-07 17:31:23 +02:00
|
|
|
"os"
|
|
|
|
|
2021-04-09 18:04:04 +02:00
|
|
|
"brainbaking.com/go-jamming/app"
|
2021-04-07 17:31:23 +02:00
|
|
|
|
2021-04-09 21:00:54 +02:00
|
|
|
"github.com/rs/zerolog"
|
|
|
|
"github.com/rs/zerolog/log"
|
2021-04-07 10:06:16 +02:00
|
|
|
)
|
2021-04-07 09:24:25 +02:00
|
|
|
|
|
|
|
func main() {
|
2021-04-09 21:00:54 +02:00
|
|
|
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
|
2021-04-11 20:37:26 +02:00
|
|
|
|
|
|
|
verboseFlag := flag.Bool("verbose", false, "Verbose mode (pretty print log, debug level)")
|
2021-04-19 20:22:38 +02:00
|
|
|
migrateFlag := flag.Bool("migrate", false, "Run migration scripts for the DB and exit.")
|
2021-04-11 20:37:26 +02:00
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
// logs by default to Stderr (/var/log/syslog). Rolling files possible via lumberjack.
|
|
|
|
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
2021-04-20 20:08:07 +02:00
|
|
|
if *verboseFlag || *migrateFlag {
|
2021-04-11 20:37:26 +02:00
|
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
|
|
|
|
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
|
|
|
}
|
2021-04-07 17:31:23 +02:00
|
|
|
|
2021-04-20 20:08:07 +02:00
|
|
|
if *migrateFlag {
|
2021-04-19 20:22:38 +02:00
|
|
|
migrate()
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
|
2021-04-09 21:00:54 +02:00
|
|
|
log.Debug().Msg("Let's a go!")
|
2021-04-07 10:06:16 +02:00
|
|
|
app.Start()
|
2021-04-07 09:24:25 +02:00
|
|
|
}
|
2021-04-19 20:22:38 +02:00
|
|
|
|
|
|
|
func migrate() {
|
|
|
|
log.Info().Msg("Starting db migration...")
|
|
|
|
db.Migrate()
|
|
|
|
log.Info().Msg("Migration ended, exiting.")
|
|
|
|
}
|