Bug #229859 - Make portageq check atom validity when has_version() and
authorZac Medico <zmedico@gentoo.org>
Sat, 28 Jun 2008 21:54:31 +0000 (21:54 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 28 Jun 2008 21:54:31 +0000 (21:54 -0000)
best_version() are called from inside the ebuild environment.

svn path=/main/trunk/; revision=10835

bin/portageq

index 04e65c8e73d6fecd9d1f91b7c575957ac4d17fcc..b7cd1186954154cce52419d9fc3d7ce1e8f9bbee 100755 (executable)
@@ -51,6 +51,10 @@ def has_version(argv):
        if (len(argv) < 2):
                print "ERROR: insufficient parameters!"
                sys.exit(2)
+       if atom_validate_strict and not portage.isvalidatom(argv[1]):
+               portage.writemsg("ERROR: Invalid atom: '%s'\n" % argv[1],
+                       noiselevel=-1)
+               return 2
        try:
                mylist=portage.db[argv[0]]["vartree"].dbapi.match(argv[1])
                if mylist:
@@ -69,6 +73,10 @@ def best_version(argv):
        if (len(argv) < 2):
                print "ERROR: insufficient parameters!"
                sys.exit(2)
+       if atom_validate_strict and not portage.isvalidatom(argv[1]):
+               portage.writemsg("ERROR: Invalid atom: '%s'\n" % argv[1],
+                       noiselevel=-1)
+               return 2
        try:
                mylist=portage.db[argv[0]]["vartree"].dbapi.match(argv[1])
                print portage.best(mylist)
@@ -437,6 +445,8 @@ def usage(argv):
        if (len(sys.argv) == 1):
                print "\nRun portageq with --help for info"
 
+atom_validate_strict = "EBUILD_PHASE" in os.environ
+
 def main():
        if "-h" in sys.argv or "--help" in sys.argv:
                usage(sys.argv)