summaryrefslogtreecommitdiff
path: root/buildscripts/moduleconfig.py
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2015-06-11 11:22:53 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2015-06-20 10:55:52 -0400
commit01965cf52bce6976637ecb8f4a622aeb05ab256a (patch)
treea4641b27e879a47adbeaac435efd9ecda80971e9 /buildscripts/moduleconfig.py
parent1178eff1ddf60a7dac3a8cd71e2fdd278aa01b52 (diff)
downloadmongo-01965cf52bce6976637ecb8f4a622aeb05ab256a.tar.gz
SERVER-18575: clang_format.py
Diffstat (limited to 'buildscripts/moduleconfig.py')
-rw-r--r--buildscripts/moduleconfig.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/buildscripts/moduleconfig.py b/buildscripts/moduleconfig.py
index 111b49545e5..7f98667b6b5 100644
--- a/buildscripts/moduleconfig.py
+++ b/buildscripts/moduleconfig.py
@@ -24,7 +24,8 @@ MongoDB module SConscript files can describe libraries, programs and unit tests,
MongoDB SConscript files do.
"""
-__all__ = ('discover_modules', 'configure_modules', 'register_module_test')
+__all__ = ('discover_modules', 'discover_module_directories', 'configure_modules',
+ 'register_module_test')
import imp
import inspect
@@ -69,6 +70,36 @@ def discover_modules(module_root, allowed_modules):
return found_modules
+def discover_module_directories(module_root, allowed_modules):
+ """Scans module_root for subdirectories that look like MongoDB modules.
+
+ Returns a list of directory names.
+ """
+ if not os.path.isdir(module_root):
+ return []
+
+ found_modules = []
+
+ if allowed_modules is not None:
+ allowed_modules = allowed_modules.split(',')
+
+ for name in os.listdir(module_root):
+ root = os.path.join(module_root, name)
+ if name.startswith('.') or not os.path.isdir(root):
+ continue
+
+ build_py = os.path.join(root, 'build.py')
+
+ if allowed_modules is not None and name not in allowed_modules:
+ print "skipping module: %s" % name
+ continue
+
+ if os.path.isfile(build_py):
+ print "adding module: %s" % name
+ found_modules.append(name)
+
+ return found_modules
+
def configure_modules(modules, conf):
""" Run the configure() function in the build.py python modules for each module in "modules"
(as created by discover_modules).