コード例 #1
0
ファイル: control.py プロジェクト: Kampi/Zybo-Linux
 def dumpMetalink(self, packages, output=None):
     if output is None:
         output = sys.stderr
     metalink = Metalink()
     msys = self._fetcher.getMirrorSystem()
     for pkg in packages:
         loaders = [x for x in pkg.loaders if not x.getInstalled()]
         if not loaders:
             raise Error, _("Package %s is not available for downloading") \
                          % pkg
         info = loaders[0].getInfo(pkg)
         if not info.getURLs():
             raise Error, _("Package %s is not available for downloading") \
                          % pkg
         for url in info.getURLs():
             metafile = Metafile(pkg.name, pkg.version, info.getSummary())
             mirror = msys.get(url)
             mirrorurls = []
             mirrorurl = mirror.getNext()
             while mirrorurl:
                 mirrorurls.append(mirrorurl)
                 mirrorurl = mirror.getNext()
             metafile.append(mirrorurls,
                             size=info.getSize(url),
                             md5=info.getMD5(url),
                             sha=info.getSHA(url),
                             sha256=info.getSHA256(url))
             metalink.append(metafile)
     if packages:
         metalink.write(output)
コード例 #2
0
 def dumpMetalink(self, packages, output=None):
     if output is None:
         output = sys.stderr
     metalink = Metalink()
     msys = self._fetcher.getMirrorSystem()
     for pkg in packages:
         loaders = [x for x in pkg.loaders if not x.getInstalled()]
         if not loaders:
             raise Error, _("Package %s is not available for downloading") \
                          % pkg
         info = loaders[0].getInfo(pkg)
         if not info.getURLs():
             raise Error, _("Package %s is not available for downloading") \
                          % pkg
         for url in info.getURLs():
             metafile = Metafile(pkg.name, pkg.version, info.getSummary())
             mirror = msys.get(url)
             mirrorurls = []
             mirrorurl = mirror.getNext()
             while mirrorurl:
                 mirrorurls.append(mirrorurl)
                 mirrorurl = mirror.getNext()
             metafile.append(mirrorurls,
                             size=info.getSize(url),
                             md5=info.getMD5(url),
                             sha=info.getSHA(url),
                             sha256=info.getSHA256(url))
             metalink.append(metafile)
     if packages:
         metalink.write(output)
コード例 #3
0
ファイル: control.py プロジェクト: Kampi/Zybo-Linux
 def downloadMetalink(self, metalink, what=None, caching=NEVER, targetdir=None):
     fetcher = self._fetcher
     fetcher.reset()
     self.reloadMirrors()
     if targetdir is None:
         localdir = os.path.join(sysconf.get("data-dir"), "tmp/")
         if not os.path.isdir(localdir):
             os.makedirs(localdir)
         fetcher.setLocalDir(localdir, mangle=True)
     else:
         fetcher.setLocalDir(targetdir, mangle=False)
     fetcher.setCaching(caching)
     for metafile in Metalink.parse(open(metalink)).files():
         urls = metafile.urls()
         info = metafile.info()
         # TODO: use random url
         fetcher.enqueue(urls[0], **info)
     fetcher.run(what=what)
     return fetcher.getSucceededSet(), fetcher.getFailedSet()
コード例 #4
0
 def downloadMetalink(self, metalink, what=None, caching=NEVER, targetdir=None):
     fetcher = self._fetcher
     fetcher.reset()
     self.reloadMirrors()
     if targetdir is None:
         localdir = os.path.join(sysconf.get("data-dir"), "tmp/")
         if not os.path.isdir(localdir):
             os.makedirs(localdir)
         fetcher.setLocalDir(localdir, mangle=True)
     else:
         fetcher.setLocalDir(targetdir, mangle=False)
     fetcher.setCaching(caching)
     for metafile in Metalink.parse(open(metalink)).files():
         urls = metafile.urls()
         info = metafile.info()
         # TODO: use random url
         fetcher.enqueue(urls[0], **info)
     fetcher.run(what=what)
     return fetcher.getSucceededSet(), fetcher.getFailedSet()