1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/python2 -O
- # vim: fileencoding=utf-8
- #
- # The Qubes OS Project, https://www.qubes-os.org/
- #
- # Copyright (C) 2015 Joanna Rutkowska <joanna@invisiblethingslab.com>
- # Copyright (C) 2015 Wojtek Porczyk <woju@invisiblethingslab.com>
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License along
- # with this program; if not, write to the Free Software Foundation, Inc.,
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- #
- '''Qubes' command line tools
- '''
- import importlib
- def get_parser_for_command(command):
- '''Get parser for given qvm-tool.
- :param str command: command name
- :rtype: argparse.ArgumentParser
- :raises ImportError: when command's module is not found
- :raises AttributeError: when parser was not found
- '''
- module = importlib.import_module(
- '.' + command.replace('-', '_'), 'qubes.tools')
- try:
- parser = module.parser
- except AttributeError:
- try:
- parser = module.get_parser()
- except AttributeError:
- raise AttributeError('cannot find parser in module')
- return parser
|