Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Fix --help commandline argument #7249

Merged
merged 2 commits into from
Apr 9, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/7249.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix --help commandline argument.
richvdh marked this conversation as resolved.
Show resolved Hide resolved
24 changes: 8 additions & 16 deletions synapse/config/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -468,8 +468,8 @@ def load_or_generate_config(cls, description, argv):

Returns: Config object, or None if --generate-config or --generate-keys was set
"""
config_parser = argparse.ArgumentParser(add_help=False)
config_parser.add_argument(
parser = argparse.ArgumentParser(description=description)
parser.add_argument(
"-c",
"--config-path",
action="append",
Expand All @@ -478,7 +478,7 @@ def load_or_generate_config(cls, description, argv):
" may specify directories containing *.yaml files.",
)

generate_group = config_parser.add_argument_group("Config generation")
generate_group = parser.add_argument_group("Config generation")
generate_group.add_argument(
"--generate-config",
action="store_true",
Expand Down Expand Up @@ -526,12 +526,13 @@ def load_or_generate_config(cls, description, argv):
),
)

config_args, remaining_args = config_parser.parse_known_args(argv)
cls.invoke_all_static("add_arguments", parser)
config_args = parser.parse_args(argv)

config_files = find_config_files(search_paths=config_args.config_path)

if not config_files:
config_parser.error(
parser.error(
"Must supply a config file.\nA config file can be automatically"
' generated using "--generate-config -H SERVER_NAME'
' -c CONFIG-FILE"'
Expand All @@ -550,7 +551,7 @@ def load_or_generate_config(cls, description, argv):

if config_args.generate_config:
if config_args.report_stats is None:
config_parser.error(
parser.error(
"Please specify either --report-stats=yes or --report-stats=no\n\n"
+ MISSING_REPORT_STATS_SPIEL
)
Expand Down Expand Up @@ -609,15 +610,6 @@ def load_or_generate_config(cls, description, argv):
)
generate_missing_configs = True

parser = argparse.ArgumentParser(
parents=[config_parser],
description=description,
formatter_class=argparse.RawDescriptionHelpFormatter,
)

obj.invoke_all_static("add_arguments", parser)
args = parser.parse_args(remaining_args)

config_dict = read_config_files(config_files)
if generate_missing_configs:
obj.generate_missing_files(config_dict, config_dir_path)
Expand All @@ -626,7 +618,7 @@ def load_or_generate_config(cls, description, argv):
obj.parse_config_dict(
config_dict, config_dir_path=config_dir_path, data_dir_path=data_dir_path
)
obj.invoke_all("read_arguments", args)
obj.invoke_all("read_arguments", config_args)

return obj

Expand Down