1// +build static_build
2
3package dbus
4
5import (
6	"bufio"
7	"os"
8	"strconv"
9	"strings"
10)
11
12func lookupHomeDir() string {
13	myUid := os.Getuid()
14
15	f, err := os.Open("/etc/passwd")
16	if err != nil {
17		return "/"
18	}
19	defer f.Close()
20
21	s := bufio.NewScanner(f)
22
23	for s.Scan() {
24		if err := s.Err(); err != nil {
25			break
26		}
27
28		line := strings.TrimSpace(s.Text())
29		if line == "" {
30			continue
31		}
32
33		parts := strings.Split(line, ":")
34
35		if len(parts) >= 6 {
36			uid, err := strconv.Atoi(parts[2])
37			if err == nil && uid == myUid {
38				return parts[5]
39			}
40		}
41	}
42
43	// Default to / if we can't get a better value
44	return "/"
45}
46