export.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package cmd
  2. import (
  3. "fmt"
  4. "os"
  5. "strings"
  6. "xg_fetl/internal/controllers"
  7. "github.com/spf13/cobra"
  8. )
  9. // 定义导出子命令
  10. var exportCmd = &cobra.Command{
  11. Use: "exp",
  12. Short: "导出数据模式",
  13. Run: func(cmd *cobra.Command, args []string) {
  14. // 定义参数变量
  15. whitelistTable, _ := cmd.Flags().GetString("whitelist table")
  16. blacklistTable, _ := cmd.Flags().GetString("blacklist table")
  17. // 检查参数
  18. // if dbName == "" {
  19. // fmt.Println("错误:必须指定数据库名 (-t)")
  20. // cmd.Usage()
  21. // os.Exit(1)
  22. // }
  23. // 验证两个参数不能同时存在
  24. if whitelistTable != "" && blacklistTable != "" {
  25. fmt.Println("错误:`whitelist-table` 和 `blacklist-table` 不能同时指定。请选择其中一个。")
  26. cmd.Usage()
  27. os.Exit(1)
  28. }
  29. // 打印接收到的参数
  30. fmt.Printf("执行模式: 导出\n")
  31. fmt.Printf("白名单 表名: %s\n", whitelistTable)
  32. fmt.Printf("黑名单 表名: %s\n", blacklistTable)
  33. if whitelistTable != "" {
  34. parts := strings.Split(whitelistTable, ",")
  35. controllers.ExportController(parts)
  36. }
  37. if blacklistTable != "" {
  38. parts := strings.Split(blacklistTable, ",")
  39. controllers.ExportController(parts)
  40. }
  41. },
  42. }
  43. // 初始化导出子命令的标志
  44. func init() {
  45. exportCmd.Flags().StringP("input", "l", "", "输入目录路径 (必选)")
  46. exportCmd.Flags().StringP("whitelist table", "w", "", "指定导入的表 (可选)\"表名,表名,表名\"")
  47. exportCmd.Flags().StringP("blacklist table", "b", "", "指定不导入的表 (可选)\"表名,表名,表名\"")
  48. }