diff --git a/plugins/mem.py b/plugins/mem.py new file mode 100644 index 0000000..f80cefa --- /dev/null +++ b/plugins/mem.py @@ -0,0 +1,30 @@ +import os +import re + +from util import hook + + +@hook.command +def mem(inp): + ".mem -- returns bot's current memory usage -- linux/windows only" + + if os.name == 'posix': + status_file = open("/proc/%d/status" % os.getpid()).read() + line_pairs = re.findall(r"^(\w+):\s*(.*)\s*$", status_file, re.M) + status = dict(line_pairs) + keys = 'VmSize VmLib VmData VmExe VmRSS VmStk'.split() + return ', '.join(key + ':' + status[key] for key in keys) + + elif os.name == 'nt': + cmd = "tasklist /FI \"PID eq %s\" /FO CSV /NH" % os.getpid() + out = os.popen(cmd).read() + + total = 0 + for amount in re.findall(r'([,0-9]+) K', out): + total += int(amount.replace(',', '')) + + return 'memory usage: %d kB' % total + + return mem.__doc__ + +print mem('')