diff --git a/awscli/clidriver.py b/awscli/clidriver.py index da9bfa1511a9..2996b73c2940 100644 --- a/awscli/clidriver.py +++ b/awscli/clidriver.py @@ -86,6 +86,9 @@ def create_main_parser(self): """ Create the main parser to handle the global arguments. """ + if self.session.get_config(): + self.provider_name = self.session.get_config().get('provider_name', 'aws') + self.cli_data = self.session.get_data('cli') description = self.cli_data['description'] self.parser = argparse.ArgumentParser(formatter_class=self.Formatter, @@ -97,7 +100,7 @@ def create_main_parser(self): if 'choices' in option_data: choices = option_data['choices'] if not isinstance(choices, list): - choices = self.session.get_data(option_data['choices']) + choices = self.session.get_data(option_data['choices'] % { "provider": self.provider_name }) if isinstance(choices, dict): choices = list(choices.keys()) option_data['help'] = self.create_choice_help(choices) @@ -331,8 +334,9 @@ def test(self, cmdline): def main(self): self.create_main_parser() self.args, remaining = self.parser.parse_known_args() + if self.args.service_name == 'help': - get_help(self.session, provider='aws', style='cli') + get_help(self.session, provider=self.provider_name, style='cli') sys.exit(0) else: if self.args.debug: @@ -340,6 +344,6 @@ def main(self): httplib.HTTPConnection.debuglevel = 2 self.session.set_debug_logger() self.formatter = get_formatter(self.args.output) - self.service = self.session.get_service(self.args.service_name) + self.service = self.session.get_service(self.args.service_name, provider_name=self.provider_name) args = self.create_service_parser(remaining) self.call(args) diff --git a/awscli/data/cli.json b/awscli/data/cli.json index f0fd25c0f787..61fea036fdcf 100644 --- a/awscli/data/cli.json +++ b/awscli/data/cli.json @@ -15,7 +15,7 @@ }, "--region": { "metavar": "region_name", - "choices": "aws/_regions" + "choices": "%(provider)s/_regions" }, "--output": { "choices": ["json", "text"], @@ -27,7 +27,7 @@ "help": "Display the version of this tool" }, "service_name": { - "choices": "aws/_services", + "choices": "%(provider)s/_services", "metavar": "service_name" } }