diff piecrust/processing/sass.py @ 414:c4b3a7fd2f87

bake: Make pipeline processing multi-process. Not many changes here, as it's pretty straightforward, but an API change for processors so they know if they're being initialized/disposed from the main process or from one of the workers. This makes it possible to do global stuff that has side-effects (e.g. create a directory) vs. doing in-memory stuff.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 20 Jun 2015 19:20:30 -0700
parents c2ca72fb7f0b
children aa686b8fbfd0
line wrap: on
line diff
--- a/piecrust/processing/sass.py	Sat Jun 20 19:16:38 2015 -0700
+++ b/piecrust/processing/sass.py	Sat Jun 20 19:20:30 2015 -0700
@@ -26,12 +26,14 @@
 
     def onPipelineStart(self, pipeline):
         super(SassProcessor, self).onPipelineStart(pipeline)
-        self._map_dir = os.path.join(pipeline.tmp_dir, 'sass')
-        if not os.path.isdir(self._map_dir):
-            os.makedirs(self._map_dir)
+
+        if pipeline.is_first_worker:
+            self._map_dir = os.path.join(pipeline.tmp_dir, 'sass')
+            if not os.path.isdir(self._map_dir):
+                os.makedirs(self._map_dir)
 
         # Ignore include-only Sass files.
-        pipeline.addSkipPatterns(['_*.scss', '_*.sass'])
+        pipeline.addIgnorePatterns(['_*.scss', '_*.sass'])
 
     def getDependencies(self, path):
         if _is_include_only(path):