[Checkins] SVN: Sandbox/ulif/z3c.recipe.template/z3c/ Add code base.

Uli Fouquet uli at gnufix.de
Fri Mar 6 09:39:28 EST 2009


Log message for revision 97579:
  Add code base.

Changed:
  A   Sandbox/ulif/z3c.recipe.template/z3c/
  A   Sandbox/ulif/z3c.recipe.template/z3c/__init__.py
  A   Sandbox/ulif/z3c.recipe.template/z3c/recipe/
  A   Sandbox/ulif/z3c.recipe.template/z3c/recipe/__init__.py
  A   Sandbox/ulif/z3c.recipe.template/z3c/recipe/template/
  A   Sandbox/ulif/z3c.recipe.template/z3c/recipe/template/__init__.py

-=-
Added: Sandbox/ulif/z3c.recipe.template/z3c/__init__.py
===================================================================
--- Sandbox/ulif/z3c.recipe.template/z3c/__init__.py	                        (rev 0)
+++ Sandbox/ulif/z3c.recipe.template/z3c/__init__.py	2009-03-06 14:39:28 UTC (rev 97579)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: Sandbox/ulif/z3c.recipe.template/z3c/recipe/__init__.py
===================================================================
--- Sandbox/ulif/z3c.recipe.template/z3c/recipe/__init__.py	                        (rev 0)
+++ Sandbox/ulif/z3c.recipe.template/z3c/recipe/__init__.py	2009-03-06 14:39:28 UTC (rev 97579)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: Sandbox/ulif/z3c.recipe.template/z3c/recipe/template/__init__.py
===================================================================
--- Sandbox/ulif/z3c.recipe.template/z3c/recipe/template/__init__.py	                        (rev 0)
+++ Sandbox/ulif/z3c.recipe.template/z3c/recipe/template/__init__.py	2009-03-06 14:39:28 UTC (rev 97579)
@@ -0,0 +1,52 @@
+import logging
+import os
+import re
+import stat
+import zc.buildout
+
+class Recipe:
+    def __init__(self, buildout, name, options):
+        self.buildout=buildout
+        self.name=name
+        self.options=options
+        self.logger=logging.getLogger(self.name)
+
+        if "input" not in options:
+            self.logger.error("No input file specified.")
+            raise zc.buildout.UserError("No input file specified.")
+
+        if "output" not in options:
+            self.logger.error("No output file specified.")
+            raise zc.buildout.UserError("No output file specified.")
+
+
+        self.input=options["input"]
+        if not os.path.exists(self.input):
+            msg="Input file '%s' does not exist." % self.input
+            self.logger.error(msg)
+            raise zc.buildout.UserError(msg)
+
+        self.output=options["output"]
+
+
+    def install(self):
+        mode=stat.S_IMODE(os.stat(self.input).st_mode)
+        source=open(self.input).read()
+        template=re.sub(r"\$\{([^:]+?)\}", r"${%s:\1}" % self.name, source) 
+        result=self.options._sub(template, [])
+
+        output=open(self.output, "wt")
+        output.write(result)
+        output.close()
+
+        os.chmod(self.output, mode)
+
+        self.options.created(self.output)
+        return self.options.created()
+
+
+    def update(self):
+        # Variables in other parts might have changed so we need to do a
+        # full reinstall.
+        return self.install()
+        



More information about the Checkins mailing list