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
string.color = function(hex)
return "<color=" + hex + ">" + self + "</color>"
end function
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
>"
bar = fill_bar
.
color
("#21bcff") +
empty_bar
.
color
("#032e41")
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("
")[1:]
// convert ps output to a
list
tasks = []
for line in
computer.show_procs
.split("
")[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>"
task = {
}
cpu_load = cpu_load +
line[2
][:-1].val
mem_load = mem_load +
line[3
][:-1].val
task["user"] =
line[0].
color
("#fbfbfb")
if line[0] == "root" then
task["user"] =
line[0].
color
("#ff4b4b")
end if
task["pid"] = line[1].color("#20ff98")
task["cpu"] = line[2].color("#21bcff")
task["mem"] = line[3].color("#21bcff")
task["command"] = line[4].color("#baff50")
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
task
s.push
task
end for
// render
p
r
int("<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
("")
r
ender_bar = function(bar_name, bar_load_value)
r = ""
r = r + (bar_name + ": [").
color
("
#fbfbfb
")
r = r +
bar(
bar
_load
_value)
r = r + "]==[ ".
color
("
#fbfbfb
")
r = r + (bar_load_value + "%").
color
("
#21bcff
")
r = r + " ]".
color
("
#fbfbfb
")
return r
end function
print
render_bar("cpu
_usage
", cpu_load)
print render_
bar(
"
mem_
usage",
mem_load)
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>
")
header = ["
USER
", "PID", "CPU", "MEM", "COMMAND"]
for i in header.indexes
header[i] = header[i].
color
("
#9d9d9d
")
end for
pps.push header.join("
")
for task in tasks
v = task["value"]
line = [v["user"], v["pid"], v["cpu"], v["mem"], v["command"]]
pps.push(
line
.join(" "))
pps.push(
task.values
.join(" "))
end for
print(format_columns(pps.join("\n")))