Rename and improve cpus module

This commit is contained in:
2025-12-21 17:16:05 +02:00
parent d1b095ba73
commit e400e338a0
3 changed files with 62 additions and 27 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ modules:
- name: shell - name: shell
- name: init - name: init
- name: motherboard - name: motherboard
- name: cpu - name: cpus
- name: gpus - name: gpus
- name: memory - name: memory
- name: partitions - name: partitions
+26 -14
View File
@@ -10,29 +10,41 @@ import (
"github.com/jackmordaunt/ghw" "github.com/jackmordaunt/ghw"
) )
type CPU struct {
Vendor string
Model string
Cores int
Threads int
}
type Monitor struct { type Monitor struct {
Width int Width int
Height int Height int
RefreshRate int RefreshRate int
} }
func GetCPUModel() string { func GetCPUs(hiddenCPUs []int) []CPU {
cpu, err := ghw.CPU() ret := make([]CPU, 0)
if err != nil {
return ""
}
if len(cpu.Processors) == 0 {
return ""
}
return cpu.Processors[0].Model
}
func GetCPUThreads() int { cpus, err := ghw.CPU()
cpu, err := ghw.CPU()
if err != nil { if err != nil {
return 0 return ret
} }
return int(cpu.TotalThreads)
for i, cpu := range cpus.Processors {
if slices.Contains(hiddenCPUs, i+1) {
continue
}
ret = append(ret, CPU{
Vendor: cpu.Vendor,
Model: cpu.Model,
Cores: int(cpu.NumCores),
Threads: int(cpu.NumThreads),
})
}
return ret
} }
func GetGPUModels(hiddenGPUS []int) (ret []string) { func GetGPUModels(hiddenGPUS []int) (ret []string) {
+35 -12
View File
@@ -171,19 +171,42 @@ func initializeModuleMap() {
RegisterModule(MotherboardModule) RegisterModule(MotherboardModule)
// Motherboard module // Motherboard module
cpuModule := StormfetchModule{stormfetchModuleConfig: stormfetchModuleConfig{Name: "cpu", Format: "%3CPU: %4$CPU_MODEL ($CPU_THREADS threads)"}, Execute: func(sm StormfetchModule) string { cpusModule := StormfetchModule{stormfetchModuleConfig: stormfetchModuleConfig{Name: "cpus", Format: "%3CPU: %4$CPU_MODEL ($CPU_THREADS threads)"}, Execute: func(sm StormfetchModule) string {
return os.Expand(sm.Format, func(s string) string { hiddenCPUsInterface, _ := sm.GetData("hidden_cpus", make([]any, 0))
switch s {
case "CPU_MODEL": // Convert interface slices to string slices
return GetCPUModel() hiddenCPUs := make([]int, 0)
case "CPU_THREADS": for _, value := range hiddenCPUsInterface.([]any) {
return strconv.Itoa(GetCPUThreads()) hiddenCPUs = append(hiddenCPUs, value.(int))
default: }
return ""
} builder := strings.Builder{}
}) cpus := GetCPUs(hiddenCPUs)
for i, cpu := range cpus {
expanded := os.Expand(sm.Format, func(s string) string {
switch s {
case "CPU_NUM":
return strconv.Itoa(i + 1)
case "CPU_VENDOR":
return cpu.Vendor
case "CPU_MODEL":
return cpu.Model
case "CPU_CORES":
return strconv.Itoa(cpu.Cores)
case "CPU_THREADS":
return strconv.Itoa(cpu.Threads)
default:
return ""
}
})
builder.WriteString(expanded + "\n")
}
return builder.String()
}} }}
RegisterModule(cpuModule) RegisterModule(cpusModule)
// GPUs module // GPUs module
gpusModule := StormfetchModule{stormfetchModuleConfig: stormfetchModuleConfig{Name: "gpus", Format: "%3GPU: %4$GPU_MODEL"}, Execute: func(sm StormfetchModule) string { gpusModule := StormfetchModule{stormfetchModuleConfig: stormfetchModuleConfig{Name: "gpus", Format: "%3GPU: %4$GPU_MODEL"}, Execute: func(sm StormfetchModule) string {