Skip to content

Commit

Permalink
chore (cleanup): cleanup machine state calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
mickael-kerjean committed Jan 22, 2024
1 parent 2a69ffa commit 250d186
Showing 1 changed file with 27 additions and 45 deletions.
72 changes: 27 additions & 45 deletions webfleet/model/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,54 +41,37 @@ func GetMachineInfo() []byte {
execCmd("getprop", "persist.sys.country") +
execCmd("getprop", "persist.sys.language"))
}
content, err := os.ReadFile("/etc/machine-id")
if err != nil {
return ""
} else if string(content) != "" {
return strings.TrimSpace(string(content))
content := fileString("/etc/machine-id")
if content != "" {
return content
}
return RandomString(5)
return fileString("/etc/hostname")
}(),
Device: func() string {
if isMac() {
return "Apple"
} else if isAndroid() {
return execCmd("getprop", "ro.product.brand")
}
m := ""
if content, err := os.ReadFile("/sys/devices/virtual/dmi/id/sys_vendor"); err == nil && string(content) != "" {
m += string(content)
}
if content, err := os.ReadFile("/sys/devices/virtual/dmi/id/product_version"); err == nil && string(content) != "" {
m += string(content)
}
if content, err := os.ReadFile("/sys/devices/virtual/dmi/id/product_name"); err == nil && string(content) != "" {
m += string(content)
}
return m
return fileString("/sys/devices/virtual/dmi/id/sys_vendor") + " " +
fileString("/sys/devices/virtual/dmi/id/product_version") + " " +
fileString("/sys/devices/virtual/dmi/id/product_name")
}(),
Hostname: func() string {
if isMac() {
return execCmd("scutil", "--get", "HostName")
} else if isAndroid() {
return "android"
}
content, err := os.ReadFile("/etc/hostname")
if err != nil {
return ""
}
return strings.TrimSpace(string(content))
return fileString("/etc/hostname")
}(),
Os: func() string {
if isMac() {
return execCmd("sw_vers", "-productName") + " " + execCmd("sw_vers", "-productVersion")
} else if isAndroid() {
return "Android"
}
content, err := os.ReadFile("/etc/os-release")
if err != nil {
return ""
}
content := fileString("/etc/os-release")
for _, line := range strings.Split(string(content), "\n") {
if strings.HasPrefix(line, "PRETTY_NAME=") == false {
continue
Expand All @@ -103,24 +86,15 @@ func GetMachineInfo() []byte {
} else if isAndroid() {
return ""
}
c, b := exec.Command("uname", "-r"), new(strings.Builder)
c.Stdout = b
c.Run()
return strings.TrimSpace(b.String())
return execCmd("uname", "-r")
}(),
Arch: func() string {
if isMac() {
c, b := exec.Command("arch"), new(strings.Builder)
c.Stdout = b
c.Run()
return strings.TrimSpace(b.String())
return execCmd("arch")
} else if isAndroid() {
return "arm"
}
c, b := exec.Command("uname", "-m"), new(strings.Builder)
c.Stdout = b
c.Run()
return strings.TrimSpace(b.String())
return execCmd("uname", "-m")
}(),
PublicIP: func() string {
return ""
Expand Down Expand Up @@ -149,6 +123,21 @@ func createHash(text string) string {
return hex.EncodeToString(hasher.Sum(nil))
}

func execCmd(program string, args ...string) string {
c, b := exec.Command(program, args...), new(strings.Builder)
c.Stdout = b
c.Run()
return strings.TrimSpace(b.String())
}

func fileString(path string) string {
content, err := os.ReadFile(path)
if err != nil {
return ""
}
return strings.TrimSpace(string(content))
}

func isMac() bool {
return runtime.GOOS == "darwin"
}
Expand All @@ -157,10 +146,3 @@ func isAndroid() bool {
_, err := os.Stat("/system/app")
return err == nil
}

func execCmd(program string, args ...string) string {
c, b := exec.Command(program, args...), new(strings.Builder)
c.Stdout = b
c.Run()
return b.String()
}

0 comments on commit 250d186

Please sign in to comment.