1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
|