[yum-cvs] yum-utils repoquery.py,1.17,1.18
Panu Matilainen
pmatilai at login.linux.duke.edu
Wed Jul 20 11:00:22 UTC 2005
Update of /home/groups/yum/cvs/yum-utils
In directory login:/tmp/cvs-serv9690
Modified Files:
repoquery.py
Log Message:
Add support for rpmquery style string formatting, eg "%-25{name} %{repoid}",
date conversions (%{buildtime:date} and :day) and fix changelog time formatting.
Index: repoquery.py
===================================================================
RCS file: /home/groups/yum/cvs/yum-utils/repoquery.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- repoquery.py 20 Jul 2005 07:21:34 -0000 1.17
+++ repoquery.py 20 Jul 2005 11:00:20 -0000 1.18
@@ -65,6 +65,16 @@
'relativepath', 'hdrstart', 'hdrend', 'id',
]
+def sec2date(timestr):
+ return time.ctime(int(timestr))
+
+def sec2day(timestr):
+ return time.strftime("%a %b %d %Y", time.gmtime(int(timestr)))
+
+convertmap = { 'date': sec2date,
+ 'day': sec2day,
+ }
+
def rpmevr(e, v, r):
et = ""
vt = ""
@@ -92,6 +102,13 @@
if hasattr(self, "fmt_%s" % item):
return getattr(self, "fmt_%s" % item)()
res = None
+ convert = None
+
+ tmp = item.split(':')
+ if len(tmp) > 1:
+ item = tmp[0]
+ convert = convertmap[tmp[1]]
+
try:
res = self.pkg.returnSimple(item)
except KeyError:
@@ -99,6 +116,8 @@
res = ", ".join(self.pkg.licenses)
else:
raise queryError("Invalid querytag: %s" % item)
+ if convert:
+ res = convert(res)
return res
def __str__(self):
@@ -136,8 +155,8 @@
qf = qf.replace("\\n", "\n")
qf = qf.replace("\\t", "\t")
- pattern = re.compile('%{(\w*?)}')
- fmt = re.sub(pattern, r'%(\1)s', qf)
+ pattern = re.compile('%([-\d]*?){([:\w]*?)}')
+ fmt = re.sub(pattern, r'%(\2)\1s', qf)
return fmt % self
def fmt_list(self, **kw):
@@ -151,7 +170,7 @@
def fmt_changelog(self, **kw):
changelog = []
for date, author, message in self.pkg.returnChangelog():
- changelog.append("* %s %s\n%s\n" % (time.ctime(int(date)), author, message))
+ changelog.append("* %s %s\n%s\n" % (sec2day(date), author, message))
return "\n".join(changelog)
def fmt_obsoletes(self, **kw):
More information about the Yum-cvs-commits
mailing list