예제 #1
0
파일: manager.py 프로젝트: SteffenL/conan
    def download(self, reference, package_ids, remote=None):
        """ Download conanfile and specified packages to local repository
        @param reference: ConanFileReference
        @param package_ids: Package ids or empty for download all
        @param remote: install only from that remote
        """
        assert(isinstance(reference, ConanFileReference))
        installer = ConanInstaller(self._paths, self._user_io, None, self.remote_manager, remote)

        if package_ids:
            installer.download_packages(reference, package_ids)
        else:  # Not specified packages, download all
            info = self.remote_manager.search(str(reference), remote, ignorecase=False)
            if reference not in info:
                remote = remote or self.remote_manager.default_remote
                raise ConanException("'%s' not found in remote '%s'" % (str(reference), remote))

            installer.download_packages(reference, info[reference].keys())