diff options
Diffstat (limited to 'widgets/proc.go')
-rw-r--r-- | widgets/proc.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/widgets/proc.go b/widgets/proc.go index 9fed067..6e29db7 100644 --- a/widgets/proc.go +++ b/widgets/proc.go @@ -12,6 +12,7 @@ import ( psCPU "github.com/shirou/gopsutil/cpu" tui "github.com/gizak/termui/v3" + "github.com/shirou/gopsutil/process" ui "github.com/xxxserxxx/gotop/termui" "github.com/xxxserxxx/gotop/utils" ) @@ -329,3 +330,34 @@ func (self SortProcsByMem) Swap(i, j int) { func (self SortProcsByMem) Less(i, j int) bool { return self[i].Mem < self[j].Mem } + +func getProcs() ([]Proc, error) { + procs, err := process.Processes() + if err != nil { + return nil, err + } + rv := make([]Proc, len(procs)) + for i, p := range procs { + cmdLine, err := p.Cmdline() + if err != nil { + return nil, err + } + cmd, err := p.Name() + if err != nil { + return nil, err + } + cpu, err := p.CPUPercent() + if err != nil { + return nil, err + } + mem, err := p.MemoryPercent() + rv[i] = Proc{ + Pid: int(p.Pid), + CommandName: cmd, + FullCommand: cmdLine, + Cpu: cpu, + Mem: float64(mem), + } + } + return rv, nil +} |