mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 09:41:09 +02:00
Rename the flashcard/deck management app from ManaDeck to Cards: - Directory: apps/manadeck → apps/cards, packages/manadeck-database → packages/cards-database - Packages: @manadeck/* → @cards/*, @manacore/manadeck-database → @manacore/cards-database - Domain: manadeck.mana.how → cards.mana.how - Storage: manadeck-storage → cards-storage - Database: manadeck → cards - All shared packages, infra configs, services, i18n, and docs updated - 244 files changed, zero remaining manadeck references Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
77 lines
2.5 KiB
Go
77 lines
2.5 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"time"
|
|
|
|
"github.com/manacore/mana-matrix-bot/internal/config"
|
|
"github.com/manacore/mana-matrix-bot/internal/runtime"
|
|
|
|
// Import all plugins to trigger their init() registration.
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/calendar"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/chat"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/clock"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/contacts"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/gateway"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/cards"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/nutriphi"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/ollama"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/onboarding"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/picture"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/planta"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/presi"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/projectdoc"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/questions"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/skilltree"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/stats"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/storage"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/stt"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/todo"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/tts"
|
|
_ "github.com/manacore/mana-matrix-bot/internal/plugins/zitare"
|
|
)
|
|
|
|
func main() {
|
|
// Structured JSON logging
|
|
slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: slog.LevelInfo,
|
|
})))
|
|
|
|
cfg := config.Load()
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
// Create and start runtime
|
|
rt := runtime.New(cfg)
|
|
|
|
// Start health server
|
|
health := runtime.NewHealthServer(rt, cfg.Port)
|
|
httpServer := health.Start()
|
|
|
|
// Start all plugins
|
|
if err := rt.Start(ctx); err != nil {
|
|
slog.Error("failed to start runtime", "error", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
slog.Info("mana-matrix-bot running", "port", cfg.Port)
|
|
|
|
// Wait for shutdown signal
|
|
sigCh := make(chan os.Signal, 1)
|
|
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
|
|
<-sigCh
|
|
|
|
slog.Info("shutting down...")
|
|
cancel()
|
|
rt.Stop()
|
|
|
|
shutdownCtx, shutdownCancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer shutdownCancel()
|
|
httpServer.Shutdown(shutdownCtx)
|
|
|
|
slog.Info("shutdown complete")
|
|
}
|