-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.go
46 lines (40 loc) · 1002 Bytes
/
common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package shard_index
import (
"flag"
"fmt"
"strings"
"github.com/go-sql-driver/mysql"
"github.com/olekukonko/tablewriter"
"github.com/zyguan/sqlz"
)
var Global struct {
User string
Pass string
Host string
Port int
}
func init() {
flag.StringVar(&Global.User, "user", "root", "tidb user")
flag.StringVar(&Global.Pass, "pass", "", "tidb password")
flag.StringVar(&Global.Host, "host", "127.0.0.1", "tidb host")
flag.IntVar(&Global.Port, "port", 4000, "tidb port")
}
func dsn(db string, params map[string]string) string {
config := mysql.NewConfig()
config.Net = "tcp"
config.Addr = fmt.Sprintf("%s:%d", Global.Host, Global.Port)
config.User = Global.User
config.Passwd = Global.Pass
config.DBName = db
config.Params = params
return config.FormatDSN()
}
func dumpResultSet(rs *sqlz.ResultSet) string {
buf := new(strings.Builder)
out := tablewriter.NewWriter(buf)
out.SetAutoFormatHeaders(false)
out.SetAutoWrapText(false)
rs.Dump(out)
out.Render()
return buf.String()
}