#!/usr/bin/python """Skeletal executable for the mudpy engine.""" # Copyright (c) 2005, 2006 Jeremy Stanley . All rights # reserved. Licensed per terms in the LICENSE file distributed with this # software. # core objects for the mudpy engine import mudpy # a consistent list so we can reimport these on reload importlist = [ "argv", "create_pidfile", "daemonize", "log", "on_pulse", "reload_data", "remove_pidfile", "universe" ] for item in importlist: exec("from mudpy import " + item) # log an initial message log("Started mudpy with command line: " + " ".join(argv)) # fork and disassociate daemonize() # make the pidfile create_pidfile(universe) # loop indefinitely while the world is not flagged for termination or # there are connected users while not universe.terminate_flag or universe.userlist: # the world was flagged for a reload of all code/data if universe.reload_flag: # reload the mudpy module reload(mudpy) for item in importlist: exec("from mudpy import " + item) # do what needs to be done on each pulse on_pulse() # the loop has terminated, so save persistent data universe.save() # log a final message log("Shutting down now.") # get rid of the pidfile remove_pidfile(universe)