#!/usr/bin/python
################################################################################
#
# autorun.py
#
# This autorun script was designed to be used with NakedMud. It will
# automagically restart your MUD any time it crashes. If the MUD is manually
# shut down, the autorun script will terminate. Accepts a port argument.
#
# Geoff Hollis
# http://www.ualberta.ca/~hollis/nakedmud.html
#
################################################################################
import sys # for sys.argv
from time import sleep # we delay before restarting
from os import system # to start running the MUD
def main(argv = sys.argv[1:]):
'''
handles the autorunning of the mud. Can accept 1 optional argument that
specifies the port number to run under
'''
restart_delay = 5 # how long do we delay before a restart (seconds)
path = './NakedMud' # the path to the MUD binary
port = 4000 # the default port we will be running the MUD under
# parse out our port number if one was supplied
if len(argv) > 0:
port = int(argv[0])
# the command we execute to boot up the MUD
cmd = "%s %d" % (path, port)
# now, while we have not exited without an error, run the MUD
# and reboot it every time we exit with an error (we crash)
while True:
# run the MUD
status = system(cmd)
# exited normally
if status == 0:
break;
else:
# We should probably see if we can figure out what kind of
# error caused the crash here, and report it
# wait out our delay, then restart the MUD
sleep(restart_delay)
# start us if we're run as a script
if __name__ == "__main__":
sys.exit(main())