From 8234d9c0d02ed1c2fcc9075f9d4b275d741480c7 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 8 Sep 2015 00:27:24 +0200 Subject: [PATCH] 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. --- evennia/server/evennia_launcher.py | 16 +++++++++++++--- evennia/server/evennia_runner.py | 4 +++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/evennia/server/evennia_launcher.py b/evennia/server/evennia_launcher.py index 4215bcca5..346e02bf1 100644 --- a/evennia/server/evennia_launcher.py +++ b/evennia/server/evennia_launcher.py @@ -989,7 +989,7 @@ def run_menu(): 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. @@ -998,6 +998,8 @@ def server_operation(mode, service, interactive, profiler): service (str): "server", "portal" or "all". interactive (bool). Use interactive mode or daemon. 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') if interactive: cmdstr.append('--iserver') + if logserver: + cmdstr.append('--logserver') cmdstr.append('--noportal') elif service == 'portal': if profiler: @@ -1033,6 +1037,8 @@ def server_operation(mode, service, interactive, profiler): cmdstr.append('--pserver') if interactive: cmdstr.append('--iserver') + if logserver: + cmdstr.append('--logserver') django.core.management.call_command( 'collectstatic', verbosity=1, interactive=False) cmdstr.extend([ @@ -1109,11 +1115,15 @@ def main(): '-i', '--interactive', action='store_true', dest='interactive', default=False, 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( '--init', action='store', dest="init", metavar="name", help="Creates a new game directory 'name' at the current location.") 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 " "available keys.")) parser.add_argument( @@ -1189,7 +1199,7 @@ def main(): elif option in ('start', 'reload', 'stop'): # operate the server directly 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": # pass-through to django manager check_db = False diff --git a/evennia/server/evennia_runner.py b/evennia/server/evennia_runner.py index 8477f84e8..fff469135 100644 --- a/evennia/server/evennia_runner.py +++ b/evennia/server/evennia_runner.py @@ -217,6 +217,8 @@ def main(): default=False, help='Do not start Server process') parser.add_argument('--noportal', action='store_true', dest='noportal', 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', default=False, help='Server in interactive mode') parser.add_argument('--iportal', action='store_true', dest='iportal', @@ -285,7 +287,7 @@ def main(): server_argv = None else: set_restart_mode(SERVER_RESTART, "shutdown") - if args.iserver: + if not args.logserver: # don't log to server logfile del server_argv[2] print "\nStarting Evennia Server (output to stdout)."