# HG changeset patch # User Ludovic Chabant # Date 1416001638 -3600 # Node ID bc63dc20baa015a1f7529412ce56ff831b4f20a2 # Parent e5cba2622d26f9e986f78b3ee09ae64cbd418c71 Fix how we pass the out directory to the baking modules. diff -r e5cba2622d26 -r bc63dc20baa0 piecrust/baking/baker.py --- a/piecrust/baking/baker.py Fri Nov 14 22:46:16 2014 +0100 +++ b/piecrust/baking/baker.py Fri Nov 14 22:47:18 2014 +0100 @@ -208,8 +208,9 @@ except Exception as ex: if self.app.debug: logger.exception(ex) - raise BakingError("Error baking page '%s' for URL '%s'." % - (page.ref_spec, uri)) from ex + page_rel_path = os.path.relpath(page.path, self.app.root_dir) + raise BakingError("%s: error baking '%s'." % + (page_rel_path, uri)) from ex # Copy page assets. if (cur_sub == 1 and self.copy_assets and @@ -264,10 +265,11 @@ class Baker(object): - def __init__(self, app, out_dir=None, force=False, portable=False, + def __init__(self, app, out_dir, force=False, portable=False, no_assets=False, num_workers=4): + assert app and out_dir self.app = app - self.out_dir = out_dir or os.path.join(app.root_dir, '_counter') + self.out_dir = out_dir self.force = force self.portable = portable self.no_assets = no_assets diff -r e5cba2622d26 -r bc63dc20baa0 piecrust/commands/builtin/baking.py --- a/piecrust/commands/builtin/baking.py Fri Nov 14 22:46:16 2014 +0100 +++ b/piecrust/commands/builtin/baking.py Fri Nov 14 22:47:18 2014 +0100 @@ -40,14 +40,17 @@ # a web server to handle serving default documents. ctx.app.config.set('site/pretty_urls', False) + out_dir = (ctx.args.output or + os.path.join(ctx.app.root_dir, '_counter')) + start_time = time.clock() try: # Bake the site sources. - self._bakeSources(ctx) + self._bakeSources(ctx, out_dir) # Bake the assets. if not ctx.args.no_assets: - self._bakeAssets(ctx) + self._bakeAssets(ctx, out_dir) # All done. logger.info('-------------------------'); @@ -60,25 +63,24 @@ logger.error(str(ex)) return 1 - def _bakeSources(self, ctx): + def _bakeSources(self, ctx, out_dir): num_workers = ctx.app.config.get('baker/workers') or 4 baker = Baker( - ctx.app, - out_dir=ctx.args.output, + ctx.app, out_dir, force=ctx.args.force, portable=ctx.args.portable, no_assets=ctx.args.no_assets, num_workers=num_workers) baker.bake() - def _bakeAssets(self, ctx): + def _bakeAssets(self, ctx, out_dir): mounts = ctx.app.assets_dirs baker_params = ctx.app.config.get('baker') or {} skip_patterns = baker_params.get('skip_patterns') force_patterns = baker_params.get('force_patterns') num_workers = ctx.app.config.get('baker/workers') or 4 proc = ProcessorPipeline( - ctx.app, mounts, ctx.args.output, + ctx.app, mounts, out_dir, force=ctx.args.force, skip_patterns=skip_patterns, force_patterns=force_patterns,