Changed operation of evennia start (non-interactive). It will now default to have the Server log to stdout (Portal defaults to a logfile as before). Use the -l or --log flag to have the Server log to the logfile specified by server.SERVER_LOG_FILE.

This commit is contained in:
Griatch 2015-09-08 00:27:24 +02:00
parent 4c6ff5b12d
commit 8234d9c0d0
2 changed files with 16 additions and 4 deletions

View file

@ -989,7 +989,7 @@ def run_menu():
return return
def server_operation(mode, service, interactive, profiler): def server_operation(mode, service, interactive, profiler, logserver=False):
""" """
Handle argument options given on the command line. Handle argument options given on the command line.
@ -998,6 +998,8 @@ def server_operation(mode, service, interactive, profiler):
service (str): "server", "portal" or "all". service (str): "server", "portal" or "all".
interactive (bool). Use interactive mode or daemon. interactive (bool). Use interactive mode or daemon.
profiler (bool): Run the service under the profiler. profiler (bool): Run the service under the profiler.
logserver (bool, optional): Log Server data to logfile
specified by settings.SERVER_LOG_FILE.
""" """
@ -1015,6 +1017,8 @@ def server_operation(mode, service, interactive, profiler):
cmdstr.append('--pserver') cmdstr.append('--pserver')
if interactive: if interactive:
cmdstr.append('--iserver') cmdstr.append('--iserver')
if logserver:
cmdstr.append('--logserver')
cmdstr.append('--noportal') cmdstr.append('--noportal')
elif service == 'portal': elif service == 'portal':
if profiler: if profiler:
@ -1033,6 +1037,8 @@ def server_operation(mode, service, interactive, profiler):
cmdstr.append('--pserver') cmdstr.append('--pserver')
if interactive: if interactive:
cmdstr.append('--iserver') cmdstr.append('--iserver')
if logserver:
cmdstr.append('--logserver')
django.core.management.call_command( django.core.management.call_command(
'collectstatic', verbosity=1, interactive=False) 'collectstatic', verbosity=1, interactive=False)
cmdstr.extend([ cmdstr.extend([
@ -1109,11 +1115,15 @@ def main():
'-i', '--interactive', action='store_true', '-i', '--interactive', action='store_true',
dest='interactive', default=False, dest='interactive', default=False,
help="Start given processes in interactive mode.") help="Start given processes in interactive mode.")
parser.add_argument(
'-l', '--log', action='store_true',
dest="logserver", default=False,
help="Log Server data to log file.")
parser.add_argument( parser.add_argument(
'--init', action='store', dest="init", metavar="name", '--init', action='store', dest="init", metavar="name",
help="Creates a new game directory 'name' at the current location.") help="Creates a new game directory 'name' at the current location.")
parser.add_argument( parser.add_argument(
'-l', nargs='+', action='store', dest='listsetting', metavar="key", '--list', nargs='+', action='store', dest='listsetting', metavar="key",
help=("List values for server settings. Use 'all' to list all " help=("List values for server settings. Use 'all' to list all "
"available keys.")) "available keys."))
parser.add_argument( parser.add_argument(
@ -1189,7 +1199,7 @@ def main():
elif option in ('start', 'reload', 'stop'): elif option in ('start', 'reload', 'stop'):
# operate the server directly # operate the server directly
init_game_directory(CURRENT_DIR, check_db=True) init_game_directory(CURRENT_DIR, check_db=True)
server_operation(option, service, args.interactive, args.profiler) server_operation(option, service, args.interactive, args.profiler, args.logserver)
elif option != "noop": elif option != "noop":
# pass-through to django manager # pass-through to django manager
check_db = False check_db = False

View file

@ -217,6 +217,8 @@ def main():
default=False, help='Do not start Server process') default=False, help='Do not start Server process')
parser.add_argument('--noportal', action='store_true', dest='noportal', parser.add_argument('--noportal', action='store_true', dest='noportal',
default=False, help='Do not start Portal process') default=False, help='Do not start Portal process')
parser.add_argument('--logserver', action='store_true', dest='logserver',
default=False, help='Log Server output to logfile')
parser.add_argument('--iserver', action='store_true', dest='iserver', parser.add_argument('--iserver', action='store_true', dest='iserver',
default=False, help='Server in interactive mode') default=False, help='Server in interactive mode')
parser.add_argument('--iportal', action='store_true', dest='iportal', parser.add_argument('--iportal', action='store_true', dest='iportal',
@ -285,7 +287,7 @@ def main():
server_argv = None server_argv = None
else: else:
set_restart_mode(SERVER_RESTART, "shutdown") set_restart_mode(SERVER_RESTART, "shutdown")
if args.iserver: if not args.logserver:
# don't log to server logfile # don't log to server logfile
del server_argv[2] del server_argv[2]
print "\nStarting Evennia Server (output to stdout)." print "\nStarting Evennia Server (output to stdout)."