...
1
2
3
4 package pgconn
5
6 import (
7 "os"
8 "os/user"
9 "path/filepath"
10 )
11
12 func defaultSettings() map[string]string {
13 settings := make(map[string]string)
14
15 settings["host"] = defaultHost()
16 settings["port"] = "5432"
17
18
19
20
21 user, err := user.Current()
22 if err == nil {
23 settings["user"] = user.Username
24 settings["passfile"] = filepath.Join(user.HomeDir, ".pgpass")
25 settings["servicefile"] = filepath.Join(user.HomeDir, ".pg_service.conf")
26 sslcert := filepath.Join(user.HomeDir, ".postgresql", "postgresql.crt")
27 sslkey := filepath.Join(user.HomeDir, ".postgresql", "postgresql.key")
28 if _, err := os.Stat(sslcert); err == nil {
29 if _, err := os.Stat(sslkey); err == nil {
30
31 settings["sslcert"] = sslcert
32 settings["sslkey"] = sslkey
33 }
34 }
35 sslrootcert := filepath.Join(user.HomeDir, ".postgresql", "root.crt")
36 if _, err := os.Stat(sslrootcert); err == nil {
37 settings["sslrootcert"] = sslrootcert
38 }
39 }
40
41 settings["target_session_attrs"] = "any"
42
43 settings["min_read_buffer_size"] = "8192"
44
45 return settings
46 }
47
48
49
50
51 func defaultHost() string {
52 candidatePaths := []string{
53 "/var/run/postgresql",
54 "/private/tmp",
55 "/tmp",
56 }
57
58 for _, path := range candidatePaths {
59 if _, err := os.Stat(path); err == nil {
60 return path
61 }
62 }
63
64 return "localhost"
65 }
66
View as plain text