| // +build !darwin |
| |
| package dbus |
| |
| import ( |
| "bytes" |
| "errors" |
| "fmt" |
| "os" |
| "os/exec" |
| ) |
| |
| const defaultSystemBusAddress = "unix:path=/var/run/dbus/system_bus_socket" |
| |
| func getSessionBusPlatformAddress() (string, error) { |
| cmd := exec.Command("dbus-launch") |
| b, err := cmd.CombinedOutput() |
| |
| if err != nil { |
| return "", err |
| } |
| |
| i := bytes.IndexByte(b, '=') |
| j := bytes.IndexByte(b, '\n') |
| |
| if i == -1 || j == -1 { |
| return "", errors.New("dbus: couldn't determine address of session bus") |
| } |
| |
| env, addr := string(b[0:i]), string(b[i+1:j]) |
| os.Setenv(env, addr) |
| |
| return addr, nil |
| } |
| |
| func getSystemBusPlatformAddress() string { |
| address := os.Getenv("DBUS_SYSTEM_BUS_ADDRESS") |
| if address != "" { |
| return fmt.Sprintf("unix:path=%s", address) |
| } |
| return defaultSystemBusAddress |
| } |