From 7a90f4ca7321000135124a4a7dc2392c2912c450 Mon Sep 17 00:00:00 2001 From: "Jorge L. Williams" Date: Fri, 28 Feb 2014 15:13:52 -0600 Subject: [PATCH] Inital implementation of create_war_fromjar. --- clamp/build.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/clamp/build.py b/clamp/build.py index b57b2cd..93fefd8 100644 --- a/clamp/build.py +++ b/clamp/build.py @@ -258,6 +258,10 @@ def copy_file(self, relpath, path): self.jar.write(chunk, 0, read) self.jar.closeEntry() + def copy_bytes(self, relpath, bytez): + self.jar.putNextEntry(JarEntry(relpath)) + self.jar.write(bytez) + self.jar.closeEntry() class JarBuilder(OutputJar): @@ -453,3 +457,28 @@ def create_singlejar(output_path, classpath, runpy): if runpy and os.path.exists(runpy): singlejar.copy_file("__run__.py", runpy) + +def create_war_fromjar(output_path, jar, application): + with JarCopy(output_path=output_path) as war: + print("Building war...") + war.copy_file("WEB-INF/lib/wsgi-app.jar", jar) + war.copy_bytes("WEB-INF/web.xml", + b""" + + + + modjy + com.xhaus.modjy.ModjyJServlet + + app_import_name + {} + + + + modjy + /* + + + """.format(application))