Add VmNameGroup
This commit is contained in:
parent
7fe827d858
commit
3549a9d4ec
@ -175,7 +175,6 @@ class VmNameAction(QubesAction):
|
||||
|
||||
def __call__(self, parser, namespace, values, option_string=None):
|
||||
''' Set ``namespace.vmname`` to ``values`` '''
|
||||
print("{!r}".format(values))
|
||||
setattr(namespace, self.dest, values)
|
||||
|
||||
def parse_qubes_app(self, parser, namespace):
|
||||
@ -377,3 +376,22 @@ def get_parser_for_command(command):
|
||||
raise AttributeError('cannot find parser in module')
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
# pylint: disable=protected-access
|
||||
class VmNameGroup(argparse._MutuallyExclusiveGroup):
|
||||
''' Adds an a VMNAME, --all & --exclude parameters to a
|
||||
:py:class:``argparse.ArgumentParser```.
|
||||
'''
|
||||
|
||||
def __init__(self, container, required, vm_action=VmNameAction):
|
||||
super(VmNameGroup, self).__init__(container, required=required)
|
||||
self.add_argument('--all', action='store_true',
|
||||
dest='all_domains',
|
||||
help='perform the action on all qubes')
|
||||
container.add_argument('--exclude', action='append', default=[],
|
||||
help='exclude the qube from --all')
|
||||
self.add_argument('VMNAME', action=vm_action, nargs='*',
|
||||
default=[]) # the default parameter is important! see
|
||||
# https://stackoverflow.com/questions/35044288
|
||||
# and `argparse.ArgumentParser.parse_args()`
|
||||
|
Loading…
Reference in New Issue
Block a user