[yum-commits] yum-groups-manager.py

James Antill james at osuosl.org
Thu Nov 6 15:22:48 UTC 2008


 yum-groups-manager.py |   34 ++++++++++++++++++++++++++++------
 1 file changed, 28 insertions(+), 6 deletions(-)

New commits:
commit 08295687a0cc280e35fbb53963281d0048828821
Author: James Antill <james at and.org>
Date:   Thu Nov 6 10:22:23 2008 -0500

    Fix the regexps, due to - ... add warnings for bad chars.

diff --git a/yum-groups-manager.py b/yum-groups-manager.py
index 856e4f6..53b0ab9 100755
--- a/yum-groups-manager.py
+++ b/yum-groups-manager.py
@@ -88,7 +88,7 @@ def trans_data(yb, inp):
         sys.exit(50)
     lang, text = data
     alnum = string.ascii_letters + string.digits
-    lang = re.sub('[^' + alnum + '-_.@]', '', lang)
+    lang = re.sub('[^-' + alnum + '_.@]', '', lang)
     if not lang:
         yb.logger.error("Error: Incorrect/empty language for translated data")
         sys.exit(50)
@@ -117,6 +117,12 @@ def req2pkgs(yb, req):
     __req2pkgs[req] = providers
     return providers
 
+def txt2id(txt):
+    groupid = txt.lower()
+    alnum = string.ascii_lowercase + string.digits
+    groupid = re.sub('[^-' + alnum + '_.:]', '', groupid)
+    return groupid
+
 def main():
 
     parser = setup_opts()
@@ -218,18 +224,28 @@ def main():
         group = yum.comps.Group()
 
         if opts.id:
-            group.groupid = opts.id
+            groupid = txt2id(opts.id)
+            if not groupid:
+                yb.logger.error("No valid id for group")
+                sys.exit(50)
+            group.groupid = groupid
+            group.name = groupid
         elif opts.name:
-            group.groupid = opts.name.lower()
-            alnum = string.ascii_lowercase + string.digits
-            group.groupid = re.sub('[^' + alnum + '-_.:]', '',
-                                   group.groupid)
+            group.groupid = txt2id(opts.name)
+            if not group.groupid:
+                yb.logger.error("No valid id for group")
+                sys.exit(50)
         else:
             yb.logger.error("No name or id for group")
             sys.exit(50)
         comps.add_group(group)
 
     if opts.name:
+        if ',' in opts.name:
+            yb.logger.error("Group name has a comma in it")
+        if '*' in opts.name or  '?' in opts.name:
+            yb.logger.error("Group name has a wildcard in it, ? or *")
+
         group.name = opts.name
     if opts.description:
         group.description = opts.description
@@ -239,6 +255,12 @@ def main():
         group.user_visible = opts.user_visible
     for tn in opts.i18nname or []:
         lang, text = trans_data(yb, tn)
+        if ',' in text:
+            yb.logger.error("Translated group name (%s) has a comma in it"%lang)
+        if '*' in text or  '?' in text:
+            yb.logger.error("Translated group name (%s) has a wildcard in it"
+                            ", ? or *" % lang)
+
         group.translated_name[lang] = text
     for td in opts.i18ndescription or []:
         lang, text = trans_data(yb, td)


More information about the Yum-commits mailing list