[yum-git] yumdownloader.py
Tim Lauridsen
timlau at linux.duke.edu
Wed Mar 12 19:26:11 UTC 2008
yumdownloader.py | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
New commits:
commit e76f4edb541b0f0e3500849242ac50499f0aa20f
Author: Tim Lauridsen <tim at naboo.local>
Date: Wed Mar 12 20:26:00 2008 +0100
make yumdownloader wine\* download all packages starting with wine (rhbz #435096)
diff --git a/yumdownloader.py b/yumdownloader.py
index fc1ee76..8141b48 100755
--- a/yumdownloader.py
+++ b/yumdownloader.py
@@ -156,16 +156,18 @@ class YumDownloader(YumUtilBase):
toActOn.extend(src)
else:
toActOn.append(newpkg)
-
if toActOn:
- if opts.source:
- toDownload.extend(self.bestPackagesFromList(toActOn, 'src'))
- elif opts.archlist:
- for arch in opts.archlist.split(','):
- toDownload.extend(self.bestPackagesFromList(toActOn, arch))
- else:
- toDownload.extend(self.bestPackagesFromList(toActOn))
-
+ pkgGroups = self._groupPackages(toActOn)
+ for group in pkgGroups:
+ pkgs = pkgGroups[group]
+ if opts.source:
+ toDownload.extend(self.bestPackagesFromList(pkgs, 'src'))
+ elif opts.archlist:
+ for arch in opts.archlist.split(','):
+ toDownload.extend(self.bestPackagesFromList(pkgs, arch))
+ else:
+ toDownload.extend(self.bestPackagesFromList(pkgs))
+
# If the user supplies to --resolve flag, resolve dependencies for
# all packages
# note this might require root access because the headers need to be
@@ -221,6 +223,16 @@ class YumDownloader(YumUtilBase):
size=os.stat(path).st_size)
shutil.copy2(path, local)
progress.end(progress.size)
+
+ def _groupPackages(self,pkglist):
+ pkgGroups = {}
+ for po in pkglist:
+ na = '%s.%s' % (po.name,po.arch)
+ if not na in pkgGroups:
+ pkgGroups[na] = [po]
+ else:
+ pkgGroups[na].append(po)
+ return pkgGroups
# sligly modified from the one in YumUtilBase
def doUtilYumSetup(self,opts):
More information about the Yum-cvs-commits
mailing list