summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-03-25 03:18:28 +0000
committerZac Medico <zmedico@gentoo.org>2008-03-25 03:18:28 +0000
commit798e46a8d85493411163e7c1c7b6d2e3515b9191 (patch)
tree3da9a237a45b73443d7f67488ab5a88f5d813a45 /bin
parente753a4f9df91501ad4b66a0554476b053a1acbdb (diff)
downloadportage-798e46a8d85493411163e7c1c7b6d2e3515b9191.tar.gz
portage-798e46a8d85493411163e7c1c7b6d2e3515b9191.tar.bz2
portage-798e46a8d85493411163e7c1c7b6d2e3515b9191.zip
Bug #211294 - Make repoman bail out if arch.list contains unrecognized
lines since we don't want people to commit with old versions of portage that don't support the current arch.list format. svn path=/main/trunk/; revision=9504
Diffstat (limited to 'bin')
-rwxr-xr-xbin/repoman15
1 files changed, 12 insertions, 3 deletions
diff --git a/bin/repoman b/bin/repoman
index 8d31e6661..165c66c00 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -569,15 +569,24 @@ scanlist.sort()
logging.debug("Found the following packages to scan:\n%s" % '\n'.join(scanlist))
profiles={}
+valid_profile_types = frozenset(["dev", "exp", "stable"])
descfile=portdir+"/profiles/profiles.desc"
if os.path.exists(descfile):
- for x in portage.grabfile(descfile):
+ for i, x in enumerate(open(descfile, 'rb')):
if x[0]=="#":
continue
arch=x.split()
- if len(arch)!=3:
- print "wrong format: \""+red(x)+"\" in "+descfile
+ if len(arch) == 0:
continue
+ if len(arch)!=3:
+ err("wrong format: \"" + bad(x.strip()) + "\" in " + \
+ descfile + " line %d" % (i+1, ))
+ elif arch[0] not in kwlist:
+ err("invalid arch: \"" + bad(arch[0]) + "\" in " + \
+ descfile + " line %d" % (i+1, ))
+ elif arch[2] not in valid_profile_types:
+ err("invalid profile type: \"" + bad(arch[2]) + "\" in " + \
+ descfile + " line %d" % (i+1, ))
if not os.path.isdir(portdir+"/profiles/"+arch[1]):
print "Invalid "+arch[2]+" profile ("+arch[1]+") for arch "+arch[0]
continue