summaryrefslogtreecommitdiff
path: root/lib/ansible/cli/arguments/option_helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/cli/arguments/option_helpers.py')
-rw-r--r--lib/ansible/cli/arguments/option_helpers.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/ansible/cli/arguments/option_helpers.py b/lib/ansible/cli/arguments/option_helpers.py
index a3efb1e2..3baaf255 100644
--- a/lib/ansible/cli/arguments/option_helpers.py
+++ b/lib/ansible/cli/arguments/option_helpers.py
@@ -16,7 +16,7 @@ from jinja2 import __version__ as j2_version
import ansible
from ansible import constants as C
-from ansible.module_utils._text import to_native
+from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.common.yaml import HAS_LIBYAML, yaml_load
from ansible.release import __version__
from ansible.utils.path import unfrackpath
@@ -31,6 +31,16 @@ class SortingHelpFormatter(argparse.HelpFormatter):
super(SortingHelpFormatter, self).add_arguments(actions)
+class ArgumentParser(argparse.ArgumentParser):
+ def add_argument(self, *args, **kwargs):
+ action = kwargs.get('action')
+ help = kwargs.get('help')
+ if help and action in {'append', 'append_const', 'count', 'extend', PrependListAction}:
+ help = f'{help.rstrip(".")}. This argument may be specified multiple times.'
+ kwargs['help'] = help
+ return super().add_argument(*args, **kwargs)
+
+
class AnsibleVersion(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
ansible_version = to_native(version(getattr(parser, 'prog')))
@@ -192,7 +202,7 @@ def create_base_parser(prog, usage="", desc=None, epilog=None):
Create an options parser for all ansible scripts
"""
# base opts
- parser = argparse.ArgumentParser(
+ parser = ArgumentParser(
prog=prog,
formatter_class=SortingHelpFormatter,
epilog=epilog,
@@ -250,8 +260,8 @@ def add_connect_options(parser):
help='connect as this user (default=%s)' % C.DEFAULT_REMOTE_USER)
connect_group.add_argument('-c', '--connection', dest='connection', default=C.DEFAULT_TRANSPORT,
help="connection type to use (default=%s)" % C.DEFAULT_TRANSPORT)
- connect_group.add_argument('-T', '--timeout', default=C.DEFAULT_TIMEOUT, type=int, dest='timeout',
- help="override the connection timeout in seconds (default=%s)" % C.DEFAULT_TIMEOUT)
+ connect_group.add_argument('-T', '--timeout', default=None, type=int, dest='timeout',
+ help="override the connection timeout in seconds (default depends on connection)")
# ssh only
connect_group.add_argument('--ssh-common-args', default=None, dest='ssh_common_args',
@@ -383,7 +393,7 @@ def add_vault_options(parser):
parser.add_argument('--vault-id', default=[], dest='vault_ids', action='append', type=str,
help='the vault identity to use')
base_group = parser.add_mutually_exclusive_group()
- base_group.add_argument('--ask-vault-password', '--ask-vault-pass', default=C.DEFAULT_ASK_VAULT_PASS, dest='ask_vault_pass', action='store_true',
+ base_group.add_argument('-J', '--ask-vault-password', '--ask-vault-pass', default=C.DEFAULT_ASK_VAULT_PASS, dest='ask_vault_pass', action='store_true',
help='ask for vault password')
base_group.add_argument('--vault-password-file', '--vault-pass-file', default=[], dest='vault_password_files',
help="vault password file", type=unfrack_path(follow=False), action='append')