Dawid Wysokiński
6c2c061b87
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #6
58 lines
1.0 KiB
Go
58 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"gitea.dwysokinski.me/twhelp/dcbot/cmd/dcbot/internal"
|
|
"gitea.dwysokinski.me/twhelp/dcbot/cmd/dcbot/internal/appmode"
|
|
"gitea.dwysokinski.me/twhelp/dcbot/cmd/dcbot/internal/db"
|
|
"gitea.dwysokinski.me/twhelp/dcbot/cmd/dcbot/internal/run"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
const (
|
|
appName = "dcbot"
|
|
)
|
|
|
|
var (
|
|
version = "development"
|
|
)
|
|
|
|
func main() {
|
|
mode, err := appmode.Parse()
|
|
if err != nil {
|
|
log.Fatalln("appmode.Parse:", err)
|
|
}
|
|
|
|
logger, err := internal.NewLogger(mode == appmode.Production)
|
|
if err != nil {
|
|
log.Fatalln("internal.NewLogger:", err)
|
|
}
|
|
defer func() {
|
|
_ = logger.Sync()
|
|
}()
|
|
|
|
if err := newApp(mode).Run(os.Args); err != nil {
|
|
logger.Fatal("app.Run: " + err.Error())
|
|
}
|
|
}
|
|
|
|
func newApp(mode string) *cli.App {
|
|
app := cli.NewApp()
|
|
app.Name = appName
|
|
app.HelpName = appName
|
|
app.Version = version
|
|
app.EnableBashCompletion = true
|
|
app.ExtraInfo = func() map[string]string {
|
|
return map[string]string{
|
|
"mode": mode,
|
|
}
|
|
}
|
|
app.Commands = []*cli.Command{
|
|
db.New(),
|
|
run.New(),
|
|
}
|
|
return app
|
|
}
|