Improved GetGPUModels function

This commit is contained in:
EnumDev 2025-03-21 16:03:15 +02:00
parent 0f46e313e6
commit d51cfdf363

View File

@ -6,6 +6,7 @@ import (
"github.com/jackmordaunt/ghw" "github.com/jackmordaunt/ghw"
"os" "os"
"os/exec" "os/exec"
"slices"
"strings" "strings"
) )
@ -28,20 +29,24 @@ func GetCPUThreads() int {
return int(cpu.TotalThreads) return int(cpu.TotalThreads)
} }
func GetGPUModels() []string { func GetGPUModels() (ret []string) {
var ret []string cmd := exec.Command("sh", "-c", "lspci -v -m | grep 'VGA' -A6 | grep '^Device:'")
cmd := exec.Command("/bin/bash", "-c", "lspci -v -m | grep 'VGA' -A6 | grep '^Device:' | sed 's/^Device://' | awk '{$1=$1};1'")
bytes, err := cmd.Output() bytes, err := cmd.Output()
if err != nil { if err != nil {
return nil return nil
} }
for _, name := range strings.Split(string(bytes), "\n") {
name = strings.TrimSpace(name) for i, gpu := range strings.Split(string(bytes), "\n") {
if name == "" { if slices.Contains(config.HiddenGPUS, i+1) {
continue continue
} }
ret = append(ret, name) if gpu == "" {
continue
}
gpu = strings.TrimPrefix(strings.TrimSpace(gpu), "Device:\t")
ret = append(ret, gpu)
} }
return ret return ret
} }