summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-11 05:48:37 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-11 05:48:37 +0000
commit01ce00cee05ceea56eb37de9c0b6585fcbb2725a (patch)
tree4927133ba1a3ff783b50dd1dac5fbb1f0f1c4c46 /bin
parent7b6f49cfae6723d86f53fda29b662764f1f967e1 (diff)
downloadportage-01ce00cee05ceea56eb37de9c0b6585fcbb2725a.tar.gz
portage-01ce00cee05ceea56eb37de9c0b6585fcbb2725a.tar.bz2
portage-01ce00cee05ceea56eb37de9c0b6585fcbb2725a.zip
Use a regular expression for the file.name check. This replaces some odd
map() usage that 2to3 warns about. (trunk r12638) svn path=/main/branches/2.1.6/; revision=12910
Diffstat (limited to 'bin')
-rwxr-xr-xbin/repoman27
1 files changed, 12 insertions, 15 deletions
diff --git a/bin/repoman b/bin/repoman
index bc0997dc4..70a0587a6 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -73,11 +73,7 @@ util.initialize_logger()
# 14 is the length of DESCRIPTION=""
max_desc_len = 100
allowed_filename_chars="a-zA-Z0-9._-+:"
-allowed_filename_chars_set = {}
-map(allowed_filename_chars_set.setdefault, map(chr, range(ord('a'), ord('z')+1)))
-map(allowed_filename_chars_set.setdefault, map(chr, range(ord('A'), ord('Z')+1)))
-map(allowed_filename_chars_set.setdefault, map(chr, range(ord('0'), ord('9')+1)))
-map(allowed_filename_chars_set.setdefault, map(chr, map(ord, [".", "-", "_", "+", ":"])))
+disallowed_filename_chars_re = re.compile(r'[^a-zA-Z0-9._\-+:]')
bad = create_color_func("BAD")
# A sane umask is needed for files that portage creates.
@@ -864,11 +860,11 @@ for x in scanlist:
continue
for y in checkdirlist:
- for c in y.strip(os.path.sep):
- if c not in allowed_filename_chars_set:
- stats["file.name"] += 1
- fails["file.name"].append("%s/%s: char '%s'" % (checkdir, y, c))
- break
+ m = disallowed_filename_chars_re.search(y.strip(os.sep))
+ if m is not None:
+ stats["file.name"] += 1
+ fails["file.name"].append("%s/%s: char '%s'" % \
+ (checkdir, y, m.group(0)))
if not (y in ("ChangeLog", "metadata.xml") or y.endswith(".ebuild")):
continue
@@ -1003,11 +999,12 @@ for x in scanlist:
stats["file.size"] += 1
fails["file.size"].append("("+ str(mystat.st_size/1024) + "K) "+x+"/files/"+y)
- for c in os.path.basename(y.rstrip(os.path.sep)):
- if c not in allowed_filename_chars_set:
- stats["file.name"] += 1
- fails["file.name"].append("%s/files/%s: char '%s'" % (checkdir, y, c))
- break
+ m = disallowed_filename_chars_re.search(
+ os.path.basename(y.rstrip(os.sep)))
+ if m is not None:
+ stats["file.name"] += 1
+ fails["file.name"].append("%s/files/%s: char '%s'" % \
+ (checkdir, y, m.group(0)))
if desktop_file_validate and desktop_pattern.match(y):
status, cmd_output = commands.getstatusoutput(