From bc2ea1780b832611f9cc2307ad3ca668d73653b8 Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Mon, 4 Jun 2007 03:54:33 +0000 Subject: [PATCH] Fixed an issue with @list that broke Windows compatibilty. We simply won't be able to let the user '@list process' under Windows, as the Python API lacks the needed modules and functions to do so. So everyone doesn't have to go through the head-scratching I did to figure out how to get Evennia running on Windows, I have included a startup.bat file for anyone wanting to develop under Windows. If someone would like me to post instructions on running under Windows, send a mail to the list stating the fact and I'll outline the process. --- commands/info.py | 32 ++++++++++++++++++++------------ startup.bat | 7 +++++++ 2 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 startup.bat diff --git a/commands/info.py b/commands/info.py index ca33b664de..d3c192cfb9 100644 --- a/commands/info.py +++ b/commands/info.py @@ -1,4 +1,8 @@ -import os, resource +import gameconf +if not gameconf.host_os_is('nt'): + # Don't import the resource module if the host OS is Windows. + import resource +import os import functions_db import scheduler @@ -19,17 +23,21 @@ def cmd_list(cdat): elif argstr == "commands": session.msg('Commands: '+ ' '.join(session.server.command_list())) elif argstr == "process": - loadvg = os.getloadavg() - psize = resource.getpagesize() - rusage = resource.getrusage(resource.RUSAGE_SELF) - session.msg("Process ID: %10d %10d bytes per page" % (os.getpid(), psize)) - session.msg("Time used: %10d user %10d sys" % (rusage[0],rusage[1])) - session.msg("Integral mem:%10d shared %10d private%10d stack" % (rusage[3], rusage[4], rusage[5])) - session.msg("Max res mem: %10d pages %10d bytes" % (rusage[2],rusage[2] * psize)) - session.msg("Page faults: %10d hard %10d soft %10d swapouts" % (rusage[7], rusage[6], rusage[8])) - session.msg("Disk I/O: %10d reads %10d writes" % (rusage[9], rusage[10])) - session.msg("Network I/O: %10d in %10d out" % (rusage[12], rusage[11])) - session.msg("Context swi: %10d vol %10d forced %10d sigs" % (rusage[14], rusage[15], rusage[13])) + if not gameconf.host_os_is('nt'): + loadvg = os.getloadavg() + psize = resource.getpagesize() + rusage = resource.getrusage(resource.RUSAGE_SELF) + session.msg("Process ID: %10d %10d bytes per page" % (os.getpid(), psize)) + session.msg("Time used: %10d user %10d sys" % (rusage[0],rusage[1])) + session.msg("Integral mem:%10d shared %10d private%10d stack" % (rusage[3], rusage[4], rusage[5])) + session.msg("Max res mem: %10d pages %10d bytes" % (rusage[2],rusage[2] * psize)) + session.msg("Page faults: %10d hard %10d soft %10d swapouts" % (rusage[7], rusage[6], rusage[8])) + session.msg("Disk I/O: %10d reads %10d writes" % (rusage[9], rusage[10])) + session.msg("Network I/O: %10d in %10d out" % (rusage[12], rusage[11])) + session.msg("Context swi: %10d vol %10d forced %10d sigs" % (rusage[14], rusage[15], rusage[13])) + else: + session.msg("Feature not available on Windows.") + return elif argstr == "flags": session.msg("Flags: "+" ".join(defines_global.SERVER_FLAGS)) else: diff --git a/startup.bat b/startup.bat new file mode 100644 index 0000000000..784321ea28 --- /dev/null +++ b/startup.bat @@ -0,0 +1,7 @@ +@echo off +set DJANGO_SETTINGS_MODULE=settings +set PYTHONPATH=. +echo Starting Evennia... + +rem We're only going to run in interactive mode until we've had more time to make sure things work as expected on Windows. +twistd -noy server.py \ No newline at end of file