This repository has been archived on 2026-01-16. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
greyhack-public/ps.src
2022-12-29 18:06:14 -08:00

73 lines
No EOL
1.7 KiB
Lua

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 = "<color=#21bcff>"+fill_bar+"</color><color=#032e41>"+empty_bar+"</color>"
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 = "<color=#ff4b4b>"+l[0]+"</color>"
else
u = "<color=#fbfbfb>"+l[0]+"</color>"
end if
n = "<color=#20ff98>"+l[1]+"</color>"
c = "<color=#21bcff>"+l[2]+"</color>"
m = "<color=#21bcff>"+l[3]+"</color>"
p = "<color=#baff50>"+l[4]+"</color>"
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("<color=#fbfbfb>tasks: "+tasks+"</color>")
print("<color=#fbfbfb>cpu_usage: [</color>"+bar(cpu_load)+"<color=#fbfbfb>]==[ </color><color=#21bcff>"+cpu_load+"%</color> <color=#fbfbfb>]</color>")
print("<color=#fbfbfb>mem_usage: [</color>"+bar(mem_load)+"<color=#fbfbfb>]==[ </color><color=#21bcff>"+mem_load+"%</color> <color=#fbfbfb>]</color>\n")
// print ps with colors
pps = []
ps = ps_out.split("\n")
print("<color=#9d9d9d>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</color>")
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("<color=#9d9d9d>X</color>")
end for
print(format_columns(pps.join("\n")))