...
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 return settings
44 }
45
46
47
48
49 func defaultHost() string {
50 candidatePaths := []string{
51 "/var/run/postgresql",
52 "/private/tmp",
53 "/tmp",
54 }
55
56 for _, path := range candidatePaths {
57 if _, err := os.Stat(path); err == nil {
58 return path
59 }
60 }
61
62 return "localhost"
63 }
64
View as plain text