comp=get_shell.host_computer
bar = function(n, bar_length = 30) // percentage number
fill_count = ceil(n / bar_length * 10)
empty_count = bar_length - fill_count
fill_bar = "#"*fill_count
empty_bar = "-"*empty_count
bar = ""+fill_bar+""+empty_bar+""
return bar
end function
ps_out = comp.show_procs
tasks = 0
cpu_load = 0.0
mem_load = 0.0
users=[]
// convert ps output to a map
for l in ps_out.split("\n")[1:]
l = l.split(" ")
cpu_load = cpu_load + l[2][:-1].val
mem_load = mem_load + l[3][:-1].val
if l[0] == "root" then
u = ""+l[0]+""
else
u = ""+l[0]+""
end if
n = ""+l[1]+""
c = ""+l[2]+""
m = ""+l[3]+""
p = ""+l[4]+""
im=0
for i in users
if i.u == u then
i.t.push({"n": n, "c": c, "m": m, "p": p})
im=1
end if
end for
if not im then
map={}
map.u=u
map.t=[]
map.t.push({"n": n, "c": c, "m": m, "p": p})
users.push(map)
end if
tasks=tasks+1
end for
print("tasks: "+tasks+"")
print("cpu_usage: ["+bar(cpu_load)+"]==[ "+cpu_load+"% ]")
print("mem_usage: ["+bar(mem_load)+"]==[ "+mem_load+"% ]\n")
// print ps with colors
pps = []
ps = ps_out.split("\n")
print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")
for m in users
pps.push(m.u)
for t in m.t
l=[t.n, t.c, t.m, t.p]
pps.push(l.join(" "))
end for
pps.push("X")
end for
print(format_columns(pps.join("\n")))