main.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "git.wecise.com/wecise/cgimport/importer"
  6. "git.wecise.com/wecise/cgimport/odbc"
  7. )
  8. // 获取配置信息
  9. //
  10. // 默认配置:
  11. // 当前工作目录下 与应用同名的 .conf 文件
  12. // 环境变量
  13. // 命令行参数
  14. var mcfg = odbc.Config
  15. var logger = odbc.Logger
  16. func init() {
  17. odbc.DefaultAppName = "cgimport"
  18. odbc.CommandArgsInfo = func() string {
  19. return `
  20. datapath=data # 指定数据文件路径
  21. reload=true # 重新导入所有数据,不指定则跳过已经导入的文件
  22. rebuild=true # 重新构建数据类结构,不指定则保持已有类结构和已有数据不变`
  23. }
  24. }
  25. func main() {
  26. if mcfg.GetString("help") != "" {
  27. fmt.Println(odbc.Usage())
  28. os.Exit(0)
  29. }
  30. // 配置参数
  31. // 文件目录
  32. datapath := mcfg.GetString("datapath", mcfg.GetString("cgi.datapath", "data"))
  33. // 并发数
  34. parallel := mcfg.GetInt("parallel", mcfg.GetInt("cgi.parallel", 20))
  35. //
  36. reload := mcfg.GetBool("reload") || mcfg.GetString("reload") == "reload"
  37. rebuild := mcfg.GetBool("rebuild") || mcfg.GetString("rebuild") == "rebuild"
  38. //
  39. logger.Info("datapath: ", datapath)
  40. logger.Info("parallel: ", parallel)
  41. logger.Info("reload: ", reload)
  42. // 导入
  43. totalfilescount, totalrecordscount, totalusetime, filescount, recordscount, usetime, e := importer.ImportDir(datapath, parallel, rebuild, reload)
  44. if e != nil {
  45. logger.Error(e)
  46. panic(e)
  47. }
  48. if totalfilescount == 0 {
  49. logger.Info(`not found data files in "` + datapath + `"`)
  50. return
  51. }
  52. // 输出统计信息
  53. logger.Info("import", filescount, "files", recordscount, "records", "in", usetime)
  54. logger.Info("total import", totalfilescount, "files", totalrecordscount, "records", "in", totalusetime)
  55. fmt.Println("access", odbc.LogFile, "for detail information")
  56. // 验证
  57. importer.Check()
  58. os.Exit(0)
  59. }