flags.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "flag"
  4. "sparrow/pkg/mysql"
  5. "github.com/jinzhu/gorm"
  6. )
  7. const (
  8. flagRabbitHost = "rabbithost"
  9. defaultRabbitHost = "amqp://knowocloud:123456@192.168.175.60:5672/"
  10. flagDBHost = "dbhost"
  11. flagDBPort = "dbport"
  12. flagDBName = "dbname"
  13. flagDBUser = "dbuser"
  14. flagDBPass = "dbpass"
  15. flagAESKey = "aeskey"
  16. defaultDBHost = "192.168.175.60"
  17. defaultDBPort = "3306"
  18. defaultDBName = "SparrowCloud"
  19. defaultDBUser = "SparrowCloud"
  20. )
  21. var (
  22. confDBHost = flag.String(flagDBHost, defaultDBHost, "database host address.")
  23. confDBPort = flag.String(flagDBPort, defaultDBPort, "database host port.")
  24. confDBName = flag.String(flagDBName, defaultDBName, "database name.")
  25. confDBUser = flag.String(flagDBUser, defaultDBUser, "database user.")
  26. confDBPass = flag.String(flagDBPass, "", "databse password.")
  27. confRabbitHost = flag.String(flagRabbitHost, defaultRabbitHost, "rabbitmq host address, amqp://user:password@ip:port/")
  28. confAESKey = flag.String(flagAESKey, "", "use your own aes encryting key.")
  29. )
  30. func getDB() (*gorm.DB, error) {
  31. db, err := mysql.GetClient(*confDBHost, *confDBPort, *confDBName, *confDBUser, *confDBPass)
  32. if err != nil {
  33. return nil, err
  34. }
  35. gormdb, err := gorm.Open("mysql", db)
  36. if err != nil {
  37. return nil, err
  38. }
  39. gormdb.SingularTable(true)
  40. gormdb.LogMode(true)
  41. return gormdb, nil
  42. }