37 lines
688 B
Go
37 lines
688 B
Go
package mem
|
|
|
|
import (
|
|
"finally-a-monolithic-linux-hw-monitor/app/common"
|
|
"finally-a-monolithic-linux-hw-monitor/app/mem/drivers"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func (mem *Mem) Render(console *strings.Builder) {
|
|
fmt.Fprintf(console, "=== %s ===\n", "Memory")
|
|
for _, driver := range mem.drivers {
|
|
driver.Render(console)
|
|
}
|
|
}
|
|
|
|
type Mem struct {
|
|
drivers []common.Driver
|
|
}
|
|
|
|
func GetMem() (Mem, error) {
|
|
mem := Mem{}
|
|
mem.drivers = []common.Driver{}
|
|
|
|
meminfo, err := drivers.NewMemInfoDriver()
|
|
if err == nil {
|
|
mem.drivers = append(mem.drivers, meminfo)
|
|
}
|
|
|
|
dmidecode, err := drivers.NewDmiDecodeDriver()
|
|
if err == nil {
|
|
mem.drivers = append(mem.drivers, dmidecode)
|
|
}
|
|
|
|
return mem, nil
|
|
}
|