Skip to content
Snippets Groups Projects
Commit fdefb9e2 authored by Erik Johnston's avatar Erik Johnston
Browse files

Move creation of ArgumentParser to caller

parent 37b524f9
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import argparse
import logging
import sys
......@@ -105,7 +106,8 @@ def export_data_command(hs, user_id, directory):
def start(config_options):
parser = HomeServerConfig.create_argument_parser("Synapse Admin Command")
parser = argparse.ArgumentParser(description="Synapse Admin Command")
HomeServerConfig.add_arguments_to_parser(parser)
subparser = parser.add_subparsers(
title="Admin Commands",
......
......@@ -231,27 +231,24 @@ class Config(object):
Returns: Config object.
"""
config_parser = cls.create_argument_parser(description)
config_parser = argparse.ArgumentParser(description=description)
cls.add_arguments_to_parser(config_parser)
obj, _ = cls.load_config_with_parser(config_parser, argv)
return obj
@classmethod
def create_argument_parser(cls, description):
"""Create an ArgumentParser instance with all the config flags.
def add_arguments_to_parser(cls, config_parser):
"""Adds all the config flags to an ArgumentParser.
Doesn't support config-file-generation: used by the worker apps.
Used for workers where we want to add extra flags/subcommands.
Args:
description (str): App description
Returns:
ArgumentParser
config_parser (ArgumentParser): App description
"""
config_parser = argparse.ArgumentParser(description=description)
config_parser.add_argument(
"-c",
"--config-path",
......@@ -273,8 +270,6 @@ class Config(object):
# `add_arguments` should be side effect free so this is probably fine.
cls.invoke_all_static("add_arguments", config_parser)
return config_parser
@classmethod
def load_config_with_parser(cls, config_parser, argv):
"""Parse the commandline and config files with the given parser
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment