package cmd import ( "pcgamedb/crawler" "pcgamedb/db" "pcgamedb/log" "github.com/spf13/cobra" "go.uber.org/zap" ) var organizeCmd = &cobra.Command{ Use: "organize", Long: "Organize game info by repack game's name", Short: "Organize game info by repack game's name", Run: organizeRun, } type organizeCommandConfig struct { Num int } var organizeCmdCfg organizeCommandConfig func init() { organizeCmd.Flags().IntVarP(&organizeCmdCfg.Num, "num", "n", -1, "number of items to process") RootCmd.AddCommand(organizeCmd) } func organizeRun(cmd *cobra.Command, args []string) { games, err := db.GetUnorganizedGameItems(organizeCmdCfg.Num) if err != nil { log.Logger.Error("Failed to get games", zap.Error(err)) } for _, game := range games { err := crawler.OrganizeGameItem(game) if err != nil { log.Logger.Error("failed to organize game item", zap.String("name", game.Name), zap.Error(err)) continue } log.Logger.Info("game item organized", zap.String("name", game.Name)) } }