[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