diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-02-19 07:55:45 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-02-19 07:55:45 +0000 |
commit | 68cb24f97d53b060140375a667d01b4ce43d9fbd (patch) | |
tree | f7e59de65d03567488e59075e1bacb9289c0461e | |
parent | b4a961c27e2ad3e9fd1516b2ecd2c608a9767a06 (diff) | |
download | portage-68cb24f97d53b060140375a667d01b4ce43d9fbd.tar.gz portage-68cb24f97d53b060140375a667d01b4ce43d9fbd.tar.bz2 portage-68cb24f97d53b060140375a667d01b4ce43d9fbd.zip |
Use a regular expression for the file.name check. This replaces some odd
map() usage that 2to3 warns about.
svn path=/main/trunk/; revision=12638
-rwxr-xr-x | bin/repoman | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/bin/repoman b/bin/repoman index 7bbb1525e..29e8657ff 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( |