projectx/cmd/manage.go
2025-03-21 11:05:42 +08:00

58 lines
1.3 KiB
Go

package cmd
import (
"context"
"fmt"
"log"
"management/internal/config"
"management/internal/pkg/logger"
"management/internal/pkg/redis"
"management/internal/pkg/session"
"management/internal/pkg/snowflake"
"management/internal/tpl"
dbinit "management/internal/db/init"
db "management/internal/db/sqlc"
router "management/internal/router/manage"
"github.com/spf13/cobra"
)
var manageCmd = &cobra.Command{
Use: "manage",
Short: "Start management server",
Long: `A Service to management manage`,
Run: func(cmd *cobra.Command, args []string) {
err := runManage(cmd.Context())
if err != nil {
log.Fatalf("run manage failed: %v", err)
}
},
}
func init() {
manageCmd.Flags().StringVarP(&configPath, "config", "c", "", "Custom config file path")
rootCmd.AddCommand(manageCmd)
}
func runManage(ctx context.Context) error {
mustInitAny(configPath, config.Init)
logger.Init()
mustInitAny(ctx, db.NewStore)
// 初始化数据
dbinit.InitSeed()
mustInit(redis.Init)
session.Init()
mustInit(snowflake.Init)
// mustInit(token.NewPasetoMaker)
// mustInit(tencentoss.Init)
mustInit(tpl.Init)
address := fmt.Sprintf("%s:%d", config.File.App.Host, config.File.App.Port)
log.Printf("Starting manage server on %s", address)
server := InitServer(address, router.NewRouter())
return server.ListenAndServe()
}