cwconfig.py
changeset 5298 66b0987716f9
parent 5274 16461f675734
child 5322 c0b7687bce3d
--- a/cwconfig.py	Thu Apr 15 18:47:37 2010 +0200
+++ b/cwconfig.py	Thu Apr 15 18:54:13 2010 +0200
@@ -385,16 +385,20 @@
 
     @classmethod
     def available_cubes(cls):
+        import re
         cubes = set()
         for directory in cls.cubes_search_path():
             if not exists(directory):
                 cls.error('unexistant directory in cubes search path: %s'
-                           % directory)
+                          % directory)
                 continue
             for cube in os.listdir(directory):
-                if cube in ('CVS', '.svn', 'shared', '.hg'):
+                if cube == 'shared':
                     continue
-                if isdir(join(directory, cube)):
+                if not re.match('[_A-Za-z][_A-Za-z0-9]*$', cube):
+                    continue # skip invalid python package name
+                cubedir = join(directory, cube)
+                if isdir(cubedir) and exists(join(cubedir, '__init__.py')):
                     cubes.add(cube)
         return sorted(cubes)