[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