Open main menu
Posts
Gists
Guilds
Users
Decipher
Docs
Open user menu
Log in
Sign up
Create a new gist
Posts
Gists
Guilds
Users
Decipher
Docs
Files
ps.src
ps.src
//command: ps
computer = get_shell.host_computer
bar = function(n, bar_length = 35) // 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 = computer.show_procs
tasks = {}
cpu_load = 0.0
mem_load = 0.0
// convert ps output to a map
counter = 0
for line in ps_out.split("\n")[1:]
line = line.split(" ")
task = {"user": line[0], "pid": line[1], "cpu": line[2], "mem": line[3], "command": line[4]}
cpu_load = cpu_load + task["cpu"][:-1].val
mem_load = mem_load + task["mem"][:-1].val
if task["user"] == "root" then
task["user"] = "<color=#ff4b4b>"+task["user"]+"</color>"
else
task["user"] = "<color=#fbfbfb>"+task["user"]+"</color>"
end if
task["pid"] = "<color=#20ff98>"+task["pid"]+"</color>"
task["cpu"] = "<color=#21bcff>"+task["cpu"]+"</color>"
task["mem"] = "<color=#21bcff>"+task["mem"]+"</color>"
task["command"] = "<color=#baff50>"+task["command"]+"</color>"
tasks[counter] = task
counter = counter + 1
end for
print("<color=#fbfbfb>tasks: "+tasks.len+"</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>")
print("")
// print ps with colors
pps = []
ps = ps_out.split("\n")
pps.push("<color=#9d9d9d>USER</color> <color=#9d9d9d>PID</color> <color=#9d9d9d>CPU</color> <color=#9d9d9d>MEM</color> <color=#9d9d9d>COLOR</color>")
for task in tasks
v = task["value"]
line = [v["user"], v["pid"], v["cpu"], v["mem"], v["command"]]
pps.push(line.join(" "))
end for
print(format_columns(pps.join("\n")))