summaryrefslogtreecommitdiff
path: root/cpp/managementgen/generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/managementgen/generate.py')
-rwxr-xr-xcpp/managementgen/generate.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/cpp/managementgen/generate.py b/cpp/managementgen/generate.py
index 4c042bd3f6..e1c01de9b0 100755
--- a/cpp/managementgen/generate.py
+++ b/cpp/managementgen/generate.py
@@ -187,7 +187,15 @@ class Generator:
pass
os.rename (tempFile, target)
- print "Generated:", target
+ print "Generated:", target
+
+ def targetPackageFile (self, schema, templateFile):
+ dot = templateFile.find(".")
+ if dot == -1:
+ raise ValueError ("Invalid template file name %s" % templateFile)
+ extension = templateFile[dot:len (templateFile)]
+ path = self.dest + "Package" + schema.getPackageName().capitalize() + extension
+ return path
def targetClassFile (self, _class, templateFile):
dot = templateFile.find(".")
@@ -244,6 +252,14 @@ class Generator:
stream = template.expand (method)
self.writeIfChanged (stream, target, force)
+ def makePackageFile (self, templateFile, schema, force=False):
+ """ Generate a package-specific file """
+ template = Template (self.input + templateFile, self)
+ self.templateFiles.append (templateFile)
+ target = self.targetPackageFile (schema, templateFile)
+ stream = template.expand (schema)
+ self.writeIfChanged (stream, target, force)
+
def makeSingleFile (self, templateFile, target, force=False):
""" Generate a single expanded template """
makefile = Makefile (self.filelists, self.templateFiles)