diff --git a/src/eddn/Gateway.py b/src/eddn/Gateway.py index d9e7dfd..3e33132 100644 --- a/src/eddn/Gateway.py +++ b/src/eddn/Gateway.py @@ -4,6 +4,7 @@ Contains the necessary ZeroMQ socket and a helper function to publish market data to the Announcer daemons. """ +import argparse import gevent import hashlib import logging @@ -51,6 +52,27 @@ statsCollector = StatsCollector() statsCollector.start() +def parse_cl_args(): + parser = argparse.ArgumentParser( + prog='Gateway', + description='EDDN Gateway server', + ) + + parser.add_argument( + '--loglevel', + help='Logging level to output at', + ) + + parser.add_argument( + '-c', '--config', + metavar='config filename', + nargs='?', + default=None, + ) + + return parser.parse_args() + + def extract_message_details(parsed_message): uploader_id = '<>' software_name = '<>' @@ -342,7 +364,12 @@ class EnableCors(object): def main(): - loadConfig() + + cl_args = parse_cl_args() + if cl_args.loglevel: + logger.setLevel(cl_args.loglevel) + + loadConfig(cl_args) configure() app.install(EnableCors()) diff --git a/src/eddn/conf/Settings.py b/src/eddn/conf/Settings.py index ce876b5..92753df 100644 --- a/src/eddn/conf/Settings.py +++ b/src/eddn/conf/Settings.py @@ -134,15 +134,14 @@ class _Settings(object): Settings = _Settings() -def loadConfig(): - ''' - Loads in a settings file specified on the commandline if one has been specified. +def loadConfig(cl_args): + """ + Load in a commandline-specified settings file, if applicable. + A convenience method if you don't need other things specified as commandline options. Otherwise, point the filename to Settings.loadFrom(). - ''' - parser = argparse.ArgumentParser() - parser.add_argument("-c", "--config", nargs="?", default=None) - args = parser.parse_args() - if args.config: - Settings.loadFrom(args.config) + :param cl_args: An `argparse.parse_args()` return. + """ + if cl_args.config: + Settings.loadFrom(cl_args.config)