summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
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):