[yum-git] Branch 'yum-3_2_X' - 2 commits - cli.py yum/__init__.py yum/rpmsack.py
James Antill
james at linux.duke.edu
Tue Jul 1 17:55:16 UTC 2008
cli.py | 34 ++++++++++++++++++++++++----------
yum/__init__.py | 13 ++++++++-----
yum/rpmsack.py | 12 ++++++++----
3 files changed, 40 insertions(+), 19 deletions(-)
New commits:
commit 1c62ccb91f83091b10b6a89287a5a05c01ee3d29
Author: James Antill <james at and.org>
Date: Tue Jul 1 13:55:06 2008 -0400
Fix doPackageLists() and rpmdb.returnPackages() to have ignore_case option.
diff --git a/cli.py b/cli.py
index d0f0342..b8575b9 100644
--- a/cli.py
+++ b/cli.py
@@ -671,8 +671,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if extcmds[0] in special:
pkgnarrow = extcmds.pop(0)
- ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds)
-
+ ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds,
+ ignore_case=True)
# rework the list output code to know about:
# obsoletes output
# the updates format
diff --git a/yum/__init__.py b/yum/__init__.py
index bcdab95..016a0e9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1329,7 +1329,8 @@ class YumBase(depsolve.Depsolve):
msg = _('%d %s files removed') % (removed, filetype)
return 0, [msg]
- def doPackageLists(self, pkgnarrow='all', patterns=None, showdups=None):
+ def doPackageLists(self, pkgnarrow='all', patterns=None, showdups=None,
+ ignore_case=False):
"""generates lists of packages, un-reduced, based on pkgnarrow option"""
if showdups is None:
@@ -1348,7 +1349,8 @@ class YumBase(depsolve.Depsolve):
if pkgnarrow == 'all':
dinst = {}
ndinst = {} # Newest versions by name.arch
- for po in self.rpmdb.returnPackages(patterns=patterns):
+ for po in self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case):
dinst[po.pkgtup] = po;
if showdups:
continue
@@ -1390,7 +1392,8 @@ class YumBase(depsolve.Depsolve):
# installed only
elif pkgnarrow == 'installed':
- installed = self.rpmdb.returnPackages(patterns=patterns)
+ installed = self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case)
# available in a repository
elif pkgnarrow == 'available':
@@ -1415,7 +1418,8 @@ class YumBase(depsolve.Depsolve):
# we must compare the installed set versus the repo set
# anything installed but not in a repo is an extra
avail = self.pkgSack.simplePkgList(patterns=patterns)
- for po in self.rpmdb.returnPackages(patterns=patterns):
+ for po in self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case):
if po.pkgtup not in avail:
extras.append(po)
@@ -1462,7 +1466,6 @@ class YumBase(depsolve.Depsolve):
ygh.recent = recent
ygh.extras = extras
-
return ygh
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7b08ab0..ead2a9f 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -255,17 +255,21 @@ class RPMDBPackageSack(PackageSackBase):
return misc.newestInList(allpkgs)
@staticmethod
- def _compile_patterns(patterns):
+ def _compile_patterns(patterns, ignore_case=False):
if not patterns or len(patterns) > constants.PATTERNS_MAX:
return None
ret = []
for pat in patterns:
- ret.append(re.compile(fnmatch.translate(pat)))
+ if ignore_case:
+ ret.append(re.compile(fnmatch.translate(pat), re.I))
+ else:
+ ret.append(re.compile(fnmatch.translate(pat)))
return ret
@staticmethod
def _match_repattern(repatterns, hdr):
if repatterns is None:
return True
+
for repat in repatterns:
if repat.match(hdr['name']):
return True
@@ -285,9 +289,9 @@ class RPMDBPackageSack(PackageSackBase):
return True
return False
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
if not self._completely_loaded:
- rpats = self._compile_patterns(patterns)
+ rpats = self._compile_patterns(patterns, ignore_case)
for hdr, idx in self._all_packages():
if self._match_repattern(rpats, hdr):
self._makePackageObject(hdr, idx)
commit eeba3000f1dac4fefde334860e450eaf95907aa3
Author: James Antill <james at and.org>
Date: Tue Jul 1 13:35:42 2008 -0400
Tidy up extra --version output, add rpm/etc. packages we dep. on
diff --git a/cli.py b/cli.py
index 34c2513..d0f0342 100644
--- a/cli.py
+++ b/cli.py
@@ -198,14 +198,28 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if opts.version:
self.conf.cache = 1
- for pkg in self.rpmdb.returnPackages(patterns=['yum']):
- # We should only have 1 return...
- print _(" Installed version: %s") % pkg
- print _(" Committer : %s") % pkg.committer
- print _(" Committime : %s") % time.ctime(pkg.committime)
- print _(" Buildtime : %s") % time.ctime(pkg.buildtime)
- if hasattr(pkg, 'installtime'):
- print _(" Installtime : %s") % time.ctime(pkg.installtime)
+ yum_progs = ['yum', 'yum-metadata-parser', 'rpm',
+ 'yum-rhn-plugin']
+ done = False
+ def sm_ui_time(x):
+ return time.strftime("%Y-%m-%d %H:%M", time.gmtime(x))
+ for pkg in self.rpmdb.returnPackages(patterns=yum_progs):
+ # We should only have 1 version of each...
+ if done: print ""
+ done = True
+ if pkg.epoch == '0':
+ ver = '%s-%s.%s' % (pkg.version, pkg.release, pkg.arch)
+ else:
+ ver = '%s:%s-%s.%s' % (pkg.epoch,
+ pkg.version, pkg.release, pkg.arch)
+ name = "%s%s%s" % (self.term.MODE['bold'], pkg.name,
+ self.term.MODE['normal'])
+ print _(" Installed: %s-%s at %s") %(name, ver,
+ sm_ui_time(pkg.installtime))
+ print _(" Built : %s at %s") % (pkg.packager,
+ sm_ui_time(pkg.buildtime))
+ print _(" Committed: %s at %s") % (pkg.committer,
+ sm_ui_time(pkg.committime))
sys.exit(0)
if opts.sleeptime is not None:
More information about the Yum-cvs-commits
mailing list