From f780f469b1dcd3f508dface5806930ac2cfcc7ca Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 2 Feb 2015 20:14:28 +0100 Subject: [PATCH] Refactored the devel/bin structure to hopefully make the system work better on Windows. --- bin/unix/evennia | 11 +++++++++++ bin/windows/evennia.bat | 1 + bin/windows/evennia.py | 11 +++++++++++ .../server/evennia_launcher.py | 19 +++++++------------ {bin => evennia/server}/evennia_runner.py | 0 {bin => evennia/server}/testing/README.txt | 0 {bin => evennia/server}/testing/__init__.py | 0 .../server}/testing/dummyrunner.py | 0 .../server}/testing/dummyrunner_settings.py | 0 {bin => evennia/server}/testing/memplot.py | 0 .../server}/testing/test_queries.py | 0 setup.py | 11 ++--------- 12 files changed, 32 insertions(+), 21 deletions(-) create mode 100755 bin/unix/evennia create mode 100644 bin/windows/evennia.bat create mode 100755 bin/windows/evennia.py rename bin/evennia => evennia/server/evennia_launcher.py (97%) mode change 100755 => 100644 rename {bin => evennia/server}/evennia_runner.py (100%) rename {bin => evennia/server}/testing/README.txt (100%) rename {bin => evennia/server}/testing/__init__.py (100%) rename {bin => evennia/server}/testing/dummyrunner.py (100%) rename {bin => evennia/server}/testing/dummyrunner_settings.py (100%) rename {bin => evennia/server}/testing/memplot.py (100%) rename {bin => evennia/server}/testing/test_queries.py (100%) diff --git a/bin/unix/evennia b/bin/unix/evennia new file mode 100755 index 0000000000..7d24ac9e13 --- /dev/null +++ b/bin/unix/evennia @@ -0,0 +1,11 @@ +#! /usr/bin/python2.7 +""" +Linux launcher +""" + +import os, sys + +sys.path.insert(0, os.path.abspath(os.getcwd())) + +from evennia.server.evennia_launcher import main +main() diff --git a/bin/windows/evennia.bat b/bin/windows/evennia.bat new file mode 100644 index 0000000000..769d046059 --- /dev/null +++ b/bin/windows/evennia.bat @@ -0,0 +1 @@ +@"python" "evennia.py" %* diff --git a/bin/windows/evennia.py b/bin/windows/evennia.py new file mode 100755 index 0000000000..7d24ac9e13 --- /dev/null +++ b/bin/windows/evennia.py @@ -0,0 +1,11 @@ +#! /usr/bin/python2.7 +""" +Linux launcher +""" + +import os, sys + +sys.path.insert(0, os.path.abspath(os.getcwd())) + +from evennia.server.evennia_launcher import main +main() diff --git a/bin/evennia b/evennia/server/evennia_launcher.py old mode 100755 new mode 100644 similarity index 97% rename from bin/evennia rename to evennia/server/evennia_launcher.py index 59b1e81864..cba62f0cf1 --- a/bin/evennia +++ b/evennia/server/evennia_launcher.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -EVENNIA SERVER STARTUP SCRIPT +EVENNIA SERVER LAUNCHER SCRIPT This is the start point for running Evennia. @@ -22,15 +22,15 @@ import django SIG = signal.SIGINT # Set up the main python paths to Evennia -EVENNIA_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -EVENNIA_BIN = os.path.join(EVENNIA_ROOT, "bin") +EVENNIA_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import evennia EVENNIA_LIB = os.path.join(os.path.dirname(os.path.abspath(evennia.__file__))) -EVENNIA_RUNNER = os.path.join(EVENNIA_BIN, "evennia_runner.py") +EVENNIA_SERVER = os.path.join(EVENNIA_LIB, "server") +EVENNIA_RUNNER = os.path.join(EVENNIA_SERVER, "evennia_runner.py") EVENNIA_TEMPLATE = os.path.join(EVENNIA_LIB, "game_template") -EVENNIA_BINTESTING = os.path.join(EVENNIA_BIN, "testing") -EVENNIA_DUMMYRUNNER = os.path.join(EVENNIA_BINTESTING, "dummyrunner.py") +EVENNIA_TESTING = os.path.join(EVENNIA_SERVER, "testing") +EVENNIA_DUMMYRUNNER = os.path.join(EVENNIA_TESTING, "dummyrunner.py") TWISTED_BINARY = "twistd" @@ -59,11 +59,6 @@ TWISTED_MIN = '12.0' DJANGO_MIN = '1.7' DJANGO_REC = '1.7' -# add Evennia root to PYTHONPATH note that bin/evennia.py is -# automatically added to sys.modules and will be imported first, which -# is not what we want. So we remove it manually and set the path so -# the root/evennia package is found first instead. -del sys.modules["evennia"] sys.path[0] = EVENNIA_ROOT #------------------------------------------------------------ @@ -656,7 +651,7 @@ def init_game_directory(path, check_db=True): print ERROR_WINDOWS_WIN32API sys.exit() - if not os.path.exists(os.path.join(EVENNIA_BIN, TWISTED_BINARY)): + if not os.path.exists(os.path.join(EVENNIA_SERVER, TWISTED_BINARY)): # Test for executable twisted batch file. This calls the # twistd.py executable that is usually not found on the # path in Windows. It's not enough to locate diff --git a/bin/evennia_runner.py b/evennia/server/evennia_runner.py similarity index 100% rename from bin/evennia_runner.py rename to evennia/server/evennia_runner.py diff --git a/bin/testing/README.txt b/evennia/server/testing/README.txt similarity index 100% rename from bin/testing/README.txt rename to evennia/server/testing/README.txt diff --git a/bin/testing/__init__.py b/evennia/server/testing/__init__.py similarity index 100% rename from bin/testing/__init__.py rename to evennia/server/testing/__init__.py diff --git a/bin/testing/dummyrunner.py b/evennia/server/testing/dummyrunner.py similarity index 100% rename from bin/testing/dummyrunner.py rename to evennia/server/testing/dummyrunner.py diff --git a/bin/testing/dummyrunner_settings.py b/evennia/server/testing/dummyrunner_settings.py similarity index 100% rename from bin/testing/dummyrunner_settings.py rename to evennia/server/testing/dummyrunner_settings.py diff --git a/bin/testing/memplot.py b/evennia/server/testing/memplot.py similarity index 100% rename from bin/testing/memplot.py rename to evennia/server/testing/memplot.py diff --git a/bin/testing/test_queries.py b/evennia/server/testing/test_queries.py similarity index 100% rename from bin/testing/test_queries.py rename to evennia/server/testing/test_queries.py diff --git a/setup.py b/setup.py index dbb12af3e8..24d0c1b122 100644 --- a/setup.py +++ b/setup.py @@ -26,17 +26,10 @@ def get_scripts(): Determine which executable scripts should be added. For Windows, this means creating a .bat file. """ - execlist = [] if os.name == "nt": - # Windows - with open(os.path.join("bin", "evennia.bat"), "w") as bat_file: - bat_file.write("@\"%s\" \"%s\" %%*" % (sys.executable, "evennia")) - execlist.extend(["bin/evennia.bat", "bin/evennia"]) + return [os.path.join("bin", "windows", "evennia.bat"), os.path.join("bin", "windows", "evennia.py")] else: - # Linux, Mac - execlist.append("bin/evennia") - execlist.append("bin/evennia_runner.py") - return execlist + return [os.path.join("bin", "unix", "evennia")] def get_version():