diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2015-06-11 11:22:53 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2015-06-20 10:55:52 -0400 |
commit | 01965cf52bce6976637ecb8f4a622aeb05ab256a (patch) | |
tree | a4641b27e879a47adbeaac435efd9ecda80971e9 /buildscripts/moduleconfig.py | |
parent | 1178eff1ddf60a7dac3a8cd71e2fdd278aa01b52 (diff) | |
download | mongo-01965cf52bce6976637ecb8f4a622aeb05ab256a.tar.gz |
SERVER-18575: clang_format.py
Diffstat (limited to 'buildscripts/moduleconfig.py')
-rw-r--r-- | buildscripts/moduleconfig.py | 33 |
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). |