diff --git a/data/epplets/uptime/uptime.fe b/data/epplets/uptime/uptime.fe new file mode 100644 index 000000000..01458585b --- /dev/null +++ b/data/epplets/uptime/uptime.fe @@ -0,0 +1,107 @@ + +uses String, File, Console; + +global +{ + object epplet; + object eppletBackground; + object uptimeLabel; + object loadLabel; +} + +function create_epplet() +{ + epplet = new Epplet(); + epplet.resize(127, 24); + eppletBackground = new EvasObject(epplet); + eppletBackground.addImage(epplet.getEppletDir() + "uptime.png"); + eppletBackground.move(epplet.getX(), epplet.getY()); + eppletBackground.setLayer(9998); + eppletBackground.show(); + + uptimeLabel = new EvasObject(epplet); + uptimeLabel.addText("borzoib", 6, ""); + uptimeLabel.move(epplet.getX() + epplet.getW() - 12 - uptimeLabel.getW(), epplet.getY()+4); + uptimeLabel.setLayer(9999); + uptimeLabel.setColor(0, 0, 0, 140); + uptimeLabel.show(); + + loadLabel = new EvasObject(epplet); + loadLabel.addText("borzoib", 6,""); + loadLabel.move(epplet.getX() + epplet.getW() - 12 - loadLabel.getW(), epplet.getY()+12); + loadLabel.setLayer(9999); + loadLabel.setColor(0, 0, 0, 140); + loadLabel.show(); +} + +function update_uptime(object data, number val) +{ + object file; + number uptime_num, udays, uhours, uminutes; + string uptime_str; + + file = new File(); + + file->open("/proc/uptime", "r", ""); + + uptime_str = file->readln(1024); + uptime_str =~ s/ .+//; + + uptime_num = String.toLong(uptime_str); + + file->close(); + + udays = uptime_num / 86400; + uhours = (uptime_num % 86400) / 3600; + uminutes = ((uptime_num % 86400) % 3600) / 60; + + uptime_str = "" + udays + "day"; + + if (udays != 1) + uptime_str += "s"; + + uptime_str += " " + uhours + "hour"; + + if (uhours != 1) + uptime_str += "s"; + + uptime_str += " " + uminutes + "min"; + + if (uminutes != 1) + uptime_str += "s"; + +/* Console.println(uptime_str);*/ + uptimeLabel.setText(uptime_str); + uptimeLabel.move(epplet.getX() + epplet.getW() - 12 - uptimeLabel.getW(), epplet.getY()+4); + + epplet.addTimer("update_uptimeTimer",0.5,"update_uptime",0,data); +} + +function update_sysload(object data, number val) +{ + object file; + number uptime_num, load_1, load_5, load_15; + string load_avg, tmp; + + file = new File(); + + file->open("/proc/loadavg", "r", ""); + + load_avg = file->readln(1024); + + load_avg = String.copySection(load_avg, 0, 14); + + load_avg =~ s/^([^ ]*) ([^ ]*)/\1, \2,/; + + load_avg = "Load: " + load_avg; + + loadLabel.setText(load_avg); + + loadLabel.move(epplet.getX() + epplet.getW() - 12 - loadLabel.getW(), epplet.getY()+12); + epplet.addTimer("update_sysloadTimer",0.5,"update_sysload",0,data); +} + +create_epplet(); + +update_uptime(epplet, 0); +update_sysload(epplet, 0); diff --git a/data/epplets/uptime/uptime.png b/data/epplets/uptime/uptime.png new file mode 100644 index 000000000..51925597d Binary files /dev/null and b/data/epplets/uptime/uptime.png differ