func BuildString(opts command.Options) (string, error) { if opts.Url != "" { return FormatUrl(opts) } // Try to detect user from current OS user if opts.User == "" { u, err := currentUser() if err == nil { opts.User = u } } // Disable ssl for localhost connections, most users have it disabled if opts.Host == "localhost" || opts.Host == "127.0.0.1" { if opts.Ssl == "" { opts.Ssl = "disable" } } url := "postgres://" if opts.User != "" { url += opts.User } if opts.Pass != "" { url += fmt.Sprintf(":%s", opts.Pass) } url += fmt.Sprintf("@%s:%d", opts.Host, opts.Port) if opts.DbName != "" { url += fmt.Sprintf("/%s", opts.DbName) } if opts.Ssl != "" { url += fmt.Sprintf("?sslmode=%s", opts.Ssl) } return url, nil }