Mercurial > piecrust2
diff piecrust/processing/less.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 | c1d4e86a3918 |
children | 35d4c172e5a6 |
line wrap: on
line diff
--- a/piecrust/processing/less.py Sat Jun 20 19:16:38 2015 -0700 +++ b/piecrust/processing/less.py Sat Jun 20 19:20:30 2015 -0700 @@ -24,7 +24,8 @@ def onPipelineStart(self, pipeline): self._map_dir = os.path.join(pipeline.tmp_dir, 'less') - if not os.path.isdir(self._map_dir): + if (pipeline.is_first_worker and + not os.path.isdir(self._map_dir)): os.makedirs(self._map_dir) def getDependencies(self, path): @@ -42,6 +43,7 @@ # Get the sources, but make all paths absolute. sources = dep_map.get('sources') path_dir = os.path.dirname(path) + def _makeAbs(p): return os.path.join(path_dir, p) deps = list(map(_makeAbs, sources))