diff options
Diffstat (limited to 'test/lib/ansible_test/_internal/cli/commands/shell.py')
-rw-r--r-- | test/lib/ansible_test/_internal/cli/commands/shell.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/lib/ansible_test/_internal/cli/commands/shell.py b/test/lib/ansible_test/_internal/cli/commands/shell.py new file mode 100644 index 0000000..1baffc6 --- /dev/null +++ b/test/lib/ansible_test/_internal/cli/commands/shell.py @@ -0,0 +1,59 @@ +"""Command line parsing for the `shell` command.""" +from __future__ import annotations + +import argparse + +from ...commands.shell import ( + command_shell, +) + +from ...config import ( + ShellConfig, +) + +from ..environments import ( + CompositeActionCompletionFinder, + ControllerMode, + TargetMode, + add_environments, +) + + +def do_shell( + subparsers, + parent: argparse.ArgumentParser, + completer: CompositeActionCompletionFinder, +): + """Command line parsing for the `shell` command.""" + parser: argparse.ArgumentParser = subparsers.add_parser( + 'shell', + parents=[parent], + help='open an interactive shell', + ) + + parser.set_defaults( + func=command_shell, + config=ShellConfig, + ) + + shell = parser.add_argument_group(title='shell arguments') + + shell.add_argument( + 'cmd', + nargs='*', + help='run the specified command', + ) + + shell.add_argument( + '--raw', + action='store_true', + help='direct to shell with no setup', + ) + + shell.add_argument( + '--export', + metavar='PATH', + help='export inventory instead of opening a shell', + ) + + add_environments(parser, completer, ControllerMode.DELEGATED, TargetMode.SHELL) # shell |