package cmd import ( "fmt" "os" "strings" "xg_fetl/internal/controllers" "github.com/spf13/cobra" ) // 定义导出子命令 var exportCmd = &cobra.Command{ Use: "exp", Short: "导出数据模式", Run: func(cmd *cobra.Command, args []string) { // 定义参数变量 whitelistTable, _ := cmd.Flags().GetString("whitelist table") blacklistTable, _ := cmd.Flags().GetString("blacklist table") // 检查参数 // if dbName == "" { // fmt.Println("错误:必须指定数据库名 (-t)") // cmd.Usage() // os.Exit(1) // } // 验证两个参数不能同时存在 if whitelistTable != "" && blacklistTable != "" { fmt.Println("错误:`whitelist-table` 和 `blacklist-table` 不能同时指定。请选择其中一个。") cmd.Usage() os.Exit(1) } // 打印接收到的参数 fmt.Printf("执行模式: 导出\n") fmt.Printf("白名单 表名: %s\n", whitelistTable) fmt.Printf("黑名单 表名: %s\n", blacklistTable) if whitelistTable != "" { parts := strings.Split(whitelistTable, ",") controllers.ExportController(parts) } if blacklistTable != "" { parts := strings.Split(blacklistTable, ",") controllers.ExportController(parts) } }, } // 初始化导出子命令的标志 func init() { exportCmd.Flags().StringP("input", "l", "", "输入目录路径 (必选)") exportCmd.Flags().StringP("whitelist table", "w", "", "指定导入的表 (可选)\"表名,表名,表名\"") exportCmd.Flags().StringP("blacklist table", "b", "", "指定不导入的表 (可选)\"表名,表名,表名\"") }