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
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

View file

@ -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)."