|
- package md
-
- import (
- "regexp"
-
- "xorm.io/xorm"
- )
-
- type DbInfo struct {
- User string
- Psw string
- Name string
- Host string
- }
-
- func SplitDbInfo(eg *xorm.Engine) *DbInfo {
- if eg == nil {
- return &DbInfo{
- User: "nil",
- Psw: "nil",
- Host: "nil",
- Name: "nil",
- }
- }
- pattern := `(\w+):(.*)@tcp\(([\w\.\-\:\_]+)\)\/(\w+)`
- reg := regexp.MustCompile(pattern).FindStringSubmatch(eg.DataSourceName())
-
- if len(reg) < 5 {
- return &DbInfo{
- User: "unknown",
- Psw: "unknown",
- Host: "unknown",
- Name: "unknown",
- }
- }
- return &DbInfo{
- User: reg[1],
- Psw: reg[2],
- Host: reg[3],
- Name: reg[4],
- }
- }
|