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):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
''' Set ``namespace.vmname`` to ``values`` '''
|
''' Set ``namespace.vmname`` to ``values`` '''
|
||||||
print("{!r}".format(values))
|
|
||||||
setattr(namespace, self.dest, values)
|
setattr(namespace, self.dest, values)
|
||||||
|
|
||||||
def parse_qubes_app(self, parser, namespace):
|
def parse_qubes_app(self, parser, namespace):
|
||||||
@ -377,3 +376,22 @@ def get_parser_for_command(command):
|
|||||||
raise AttributeError('cannot find parser in module')
|
raise AttributeError('cannot find parser in module')
|
||||||
|
|
||||||
return parser
|
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