From 0fc89247aaf82c538a6340953d1b17c40fd9245b Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Wed, 25 Apr 2007 19:39:15 +0000 Subject: [PATCH] No longer need to distribute a database file. Each user will run their syncdb script and start with a clean slate. Updated installation instructions in README. --- README | 28 ++++++++++++++++++++-------- apps/config/sql/configvalue.sql | 3 ++- evennia.sql | Bin 65536 -> 0 bytes gameconf.py | 8 ++++++++ initial_setup.py | 20 ++++++++++++++++++++ server.py | 7 ++++++- 6 files changed, 56 insertions(+), 10 deletions(-) delete mode 100755 evennia.sql create mode 100644 initial_setup.py diff --git a/README b/README index d7040ff22d..d4f815e8ea 100755 --- a/README +++ b/README @@ -29,6 +29,14 @@ many features free, such as: abstraction of sessions and cookies, and access to whatever game data you desire are all attractive. +Requirements +------------ +* Python 2.5 strongly recommended, although may work just fine. +* PySqlite2 +* Django (Latest trunk from Subversion recommended) +* Optional: Apache2 or equivalent webserver with a Python interpreter + module. Required for web interface. + Installation ------------ At this point in time, the codebase is changing so rapidly that writing @@ -37,14 +45,15 @@ in development, we'll make sure to update this. But for the really determined (or stubborn), here's a rough outline: * Install Django. -* Copy the Evennia source somewhere. -* Set up your apache2.conf to point mod-python to the settings.py file if you - want the web features. +* Get a copy of the Evennia source. +* Optional: Set up your apache2.conf to point mod-python to the settings.py + file if you want the web features. * Copy settings.py.dist to settings.py. * Edit settings.py with your database info. * Run 'python manage.py syncdb' -* Run prepenv.sh. This will start the MU* server on port 4000 by default. You +* Run startup.sh. This will start the MU* server on port 4000 by default. You may change this via the web interface or by editing the config table in SQL. +* Login with the email address and password you provided to the syncdb script. Support and Development ----------------------- @@ -52,8 +61,11 @@ Since we're so early in development, we really can't hope to offer much support. However, if you'd like to report bugs, make suggestions, or help with the code work, visit either or both of the following links: +* Evennia Webpage + http://evennia.com + * Evennia Code Page - http://code.google.com/p/evennia/ - -* Evennia Google Group - http://groups-beta.google.com/group/evennia?hl=en + http://code.evennia.com + +* Evennia Test Game + evennia.com port 4000 diff --git a/apps/config/sql/configvalue.sql b/apps/config/sql/configvalue.sql index 449cf7808a..d721aa18b2 100644 --- a/apps/config/sql/configvalue.sql +++ b/apps/config/sql/configvalue.sql @@ -2,4 +2,5 @@ INSERT INTO "config_configvalue" VALUES(0,'site_name','Evennia Test Site'); INSERT INTO "config_configvalue" VALUES(1,'site_port','4000'); INSERT INTO "config_configvalue" VALUES(2,'player_dbnum_start','2'); INSERT INTO "config_configvalue" VALUES(3,'money_name_plural','Credits'); -INSERT INTO "config_configvalue" VALUES(4,'money_name_singular','Credit'); \ No newline at end of file +INSERT INTO "config_configvalue" VALUES(4,'money_name_singular','Credit'); +INSERT INTO "config_configvalue" VALUES(5,'game_firstrun','1'); \ No newline at end of file diff --git a/evennia.sql b/evennia.sql deleted file mode 100755 index 05cc0ab8e67d0b51842ce0d5082a94216d7018bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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 diff --git a/gameconf.py b/gameconf.py index b21627be6c..7ba47ab6f1 100644 --- a/gameconf.py +++ b/gameconf.py @@ -8,3 +8,11 @@ def get_configvalue(configname): Retrieve a configuration value. """ return ConfigValue.objects.get(conf_key=configname).conf_value + +def set_configvalue(configname, newvalue): + """ + Sets a configuration value with the specified name. + """ + conf = ConfigValue.objects.get(conf_key=configname) + conf.conf_value = newvalue + conf.save() \ No newline at end of file diff --git a/initial_setup.py b/initial_setup.py new file mode 100644 index 0000000000..8d515c6986 --- /dev/null +++ b/initial_setup.py @@ -0,0 +1,20 @@ +from django.contrib.auth.models import User, Group +from apps.objects.models import Object +import functions_db +import functions_general +import gameconf + +def handle_setup(): + # Set the initial user's username on the #1 object. + god_user = User.objects.filter(id=1)[0] + god_user_obj = Object.objects.filter(id=1)[0] + god_user_obj.set_name(god_user.username) + + groups = ("Immortals", "Wizards", "Builders", "Player Helpers") + for group in groups: + newgroup = Group() + newgroup.name = group + newgroup.save() + + # We don't want to do initial setup tasks every startup, only the first. + gameconf.set_configvalue('game_firstrun', '0') \ No newline at end of file diff --git a/server.py b/server.py index 7ec6e60211..95551b6e0a 100755 --- a/server.py +++ b/server.py @@ -10,6 +10,7 @@ import functions_general import session_mgr import gameconf import settings +import initial_setup class Server(dispatcher): """ @@ -31,7 +32,11 @@ class Server(dispatcher): # Load command aliases into memory for easy/quick access. self.load_cmd_aliases() self.port = gameconf.get_configvalue('site_port') - + + if gameconf.get_configvalue('game_firstrun') == '1': + print ' Game started for the first time, setting defaults.' + initial_setup.handle_setup() + # Start accepting connections. dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM)