示例#1
0
文件: __init__.py 项目: mottsen/kiwi
 def new(
     repository: object, package_manager_name: str,
     custom_args: List=None  # noqa: E252
 ):
     name_map = {
         'zypper': ['zypper', 'Zypper'],
         'dnf': ['dnf', 'Dnf'],
         'microdnf': ['microdnf', 'MicroDnf'],
         'pacman': ['pacman', 'Pacman'],
         'apt': ['apt', 'Apt']
     }
     try:
         (module_namespace, module_name) = name_map[package_manager_name]
         package_manager = importlib.import_module(
             'kiwi.package_manager.{0}'.format(module_namespace)
         )
         module_name = 'PackageManager{0}'.format(module_name)
         manager = package_manager.__dict__[module_name](
             repository, custom_args
         )
     except Exception as issue:
         raise KiwiPackageManagerSetupError(
             'Support for package manager {0} not implemented {1}'.format(
                 package_manager_name, issue
             )
         )
     log.info(
         'Using package manager backend: {0}'.format(package_manager_name)
     )
     return manager
示例#2
0
    def __new__(self, repository, package_manager, custom_args=None):
        if package_manager == 'zypper':
            manager = PackageManagerZypper(repository, custom_args)
        elif package_manager == 'dnf' or package_manager == 'yum':
            manager = PackageManagerDnf(repository, custom_args)
        elif package_manager == 'apt-get':
            manager = PackageManagerApt(repository, custom_args)
        else:
            raise KiwiPackageManagerSetupError(
                'Support for package manager %s not implemented' %
                package_manager)

        log.info('Using package manager backend: %s', package_manager)
        return manager