# HG changeset patch # User Ludovic Chabant # Date 1456209879 28800 # Node ID dba53f0f767137a575c7c8f002d84a2f1fb78bf5 # Parent 9c0092fae31d9ec5e2b9dfdd20e2e1472e06dd5e admin: run an asset processing loop in the background. diff -r 9c0092fae31d -r dba53f0f7671 piecrust/commands/builtin/admin.py --- a/piecrust/commands/builtin/admin.py Mon Feb 22 22:50:30 2016 -0800 +++ b/piecrust/commands/builtin/admin.py Mon Feb 22 22:44:39 2016 -0800 @@ -1,4 +1,5 @@ import os +import os.path import logging from piecrust import CACHE_DIR from piecrust.commands.base import ChefCommand @@ -40,6 +41,11 @@ '-a', '--address', help="The host for the administrative panel website.", default='localhost') + p.add_argument( + '--no-assets', + help="Don't process and monitor the asset folder(s).", + dest='monitor_assets', + action='store_false') p.set_defaults(sub_func=self._runFoodTruck) def checkedRun(self, ctx): @@ -48,11 +54,15 @@ return ctx.args.sub_func(ctx) def _runFoodTruck(self, ctx): - from piecrust.processing.pipeline import ProcessorPipeline - out_dir = os.path.join( - ctx.app.root_dir, CACHE_DIR, 'foodtruck', 'server') - proc = ProcessorPipeline(ctx.app, out_dir) - proc.run() + # See `_run_sse_check` in `piecrust.serving.wrappers` for an explanation + # of this check. + if (ctx.args.monitor_assets and ( + not ctx.args.debug or + os.environ.get('WERKZEUG_RUN_MAIN') == 'true')): + from piecrust.serving.procloop import ProcessingLoop + out_dir = os.path.join(ctx.app.root_dir, CACHE_DIR, 'foodtruck', 'server') + proc_loop = ProcessingLoop(ctx.app.root_dir, out_dir, debug=ctx.args.debug) + proc_loop.start() from foodtruck import settings settings.FOODTRUCK_CMDLINE_MODE = True