forked from ebhomengo/niki
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package command
|
|
|
|
import (
|
|
"context"
|
|
"git.gocasts.ir/ebhomengo/niki/benefactorapp"
|
|
"git.gocasts.ir/ebhomengo/niki/pkg/logger"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var migrateUp bool
|
|
var migrateDown bool
|
|
|
|
var serveCmd = &cobra.Command{
|
|
Use: "serve",
|
|
Short: "Start the benefactor service",
|
|
Long: `This command starts the main benefactor service.`,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
serve()
|
|
},
|
|
}
|
|
|
|
func serve() {
|
|
var cfg = loadAppConfig()
|
|
|
|
// Initialize logger
|
|
logger.Init(cfg.Logger)
|
|
log := logger.L()
|
|
|
|
db := getDB()
|
|
migrate()
|
|
|
|
// Start the server
|
|
log.Info("Starting benefactor Service...")
|
|
|
|
// Connect to the database
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
app := benefactorapp.Setup(ctx, cfg, *db)
|
|
app.Start()
|
|
}
|
|
|
|
func init() {
|
|
serveCmd.Flags().BoolVar(&migrateUp, "migrate-up", false, "Run migrations up before starting the server")
|
|
serveCmd.Flags().BoolVar(&migrateDown, "migrate-down", false, "Run migrations down before starting the server")
|
|
RootCmd.AddCommand(serveCmd)
|
|
}
|