discordo/cmd/run.go
2025-02-28 17:29:03 -05:00

39 lines
686 B
Go

package cmd
import (
"log/slog"
"github.com/ayn2op/discordo/internal/config"
"github.com/ayn2op/discordo/internal/consts"
"github.com/ayn2op/discordo/internal/logger"
"github.com/zalando/go-keyring"
)
var (
discordState *State
app *App
)
func Run(token string) error {
if err := logger.Load(); err != nil {
return err
}
// If no token was provided, look it up in the keyring.
if token == "" {
tok, err := keyring.Get(consts.Name, "token")
if err != nil {
slog.Info("failed to get token from keyring", "err", err)
} else {
token = tok
}
}
cfg, err := config.Load()
if err != nil {
return err
}
app = newApp(cfg)
return app.run(token)
}