diff options
Diffstat (limited to 'base')
| -rw-r--r-- | base/factories.py (renamed from base/dirfactory.py) | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/base/dirfactory.py b/base/factories.py index 57d66db..98022fe 100644 --- a/base/dirfactory.py +++ b/base/factories.py @@ -27,10 +27,24 @@ from exceptions import ExecutionException directory_type = dict() -def register(cls, name): +def register_dirfactory(cls, name): global directory_type directory_type[name] = cls +buildsystem_type = dict() + +def register_buildsystem(cls, name): + global buildsystem_type + buildsystem_type[name] = cls + +class BuildSystemFactory(object): + def __new__(cls, type, *args): + new_cls = buildsystem_type[type] + foo = new_cls.__new__(new_cls, *args) + foo.__init__(*args) + return foo + + class DirFactory(object): '''creates a new object of type defined by a directory's .devshell file''' def __new__(cls, name=None): |
