43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"git.jojodev.com/minecraft/mcm-discord/database"
|
|
"git.jojodev.com/minecraft/mcm-discord/discord"
|
|
"git.jojodev.com/minecraft/mcm-discord/socket"
|
|
"github.com/peterbourgon/ff/v3"
|
|
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func main() {
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
|
|
|
|
fs := flag.NewFlagSet("mcm-discord", flag.ExitOnError)
|
|
dns := flag.String("dns", "", "MariaDB DNS")
|
|
port := flag.Int("port", 8080, "Port to listen on")
|
|
pluginPort := flag.Int("plugin-port", 0, "Plugin port for socket connection")
|
|
publicKey := fs.String("public-ket", "", "App public key")
|
|
appID := fs.String("app-id", "", "App ID")
|
|
botToken := fs.String("bot-token", "", "Bot token")
|
|
if err := ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("MCM")); err != nil {
|
|
log.Fatal().Err(err).Msg("")
|
|
}
|
|
|
|
store, err := database.New(*dns)
|
|
if err != nil {
|
|
log.Fatal().Err(err).Msg("")
|
|
}
|
|
sock := &socket.Socket{Port: *pluginPort}
|
|
|
|
mux := discord.New(store, sock, *publicKey, *appID, *botToken)
|
|
|
|
if err := mux.Mux.ListenAndServe(fmt.Sprintf(":%d", *port)); err != nil {
|
|
log.Fatal().Err(err).Msg("")
|
|
}
|
|
}
|