package app import ( "fmt" "os" "github.com/spf13/cobra" "gitlab.com/security-rd/go-pkg/logging" "gitlab.com/tensorsecurity-rd/waf-console/api" // "gitlab.com/tensorsecurity-rd/waf-console/internal/config" "gorm.io/driver/mysql" "gorm.io/gorm" ) func NewRootCommand() *cobra.Command { return &cobra.Command{ Use: "waf-console", Short: "Start waf-console service.", Args: cobra.ExactArgs(0), RunE: func(cmd *cobra.Command, args []string) error { config := LoadConfig() debugMode := os.Getenv("DEBUG_MODE") logging.Get().Info().Msgf("DEBUG_MODE: %s", debugMode) if debugMode == "true" { config.Debug = true // config.Conf.Debug = true } dbConfig := config.DBConfig var db *gorm.DB var err error if dbConfig != nil { dns := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbConfig.User, dbConfig.Password, dbConfig.Host, dbConfig.Port, dbConfig.Database) db, err = gorm.Open(mysql.Open(dns), &gorm.Config{}) if err != nil { panic(err) } } else { panic("dbConfig is nil") } e := api.SetRouters(db) return e.Run(":8080") }, } }