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")))