Mercurial > piecrust2
comparison piecrust/commands/builtin/admin.py @ 656:dba53f0f7671
admin: run an asset processing loop in the background.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 22 Feb 2016 22:44:39 -0800 |
parents | 466bbddd121e |
children | c84647485ab2 |
comparison
equal
deleted
inserted
replaced
655:9c0092fae31d | 656:dba53f0f7671 |
---|---|
1 import os | 1 import os |
2 import os.path | |
2 import logging | 3 import logging |
3 from piecrust import CACHE_DIR | 4 from piecrust import CACHE_DIR |
4 from piecrust.commands.base import ChefCommand | 5 from piecrust.commands.base import ChefCommand |
5 | 6 |
6 | 7 |
38 default=8090) | 39 default=8090) |
39 p.add_argument( | 40 p.add_argument( |
40 '-a', '--address', | 41 '-a', '--address', |
41 help="The host for the administrative panel website.", | 42 help="The host for the administrative panel website.", |
42 default='localhost') | 43 default='localhost') |
44 p.add_argument( | |
45 '--no-assets', | |
46 help="Don't process and monitor the asset folder(s).", | |
47 dest='monitor_assets', | |
48 action='store_false') | |
43 p.set_defaults(sub_func=self._runFoodTruck) | 49 p.set_defaults(sub_func=self._runFoodTruck) |
44 | 50 |
45 def checkedRun(self, ctx): | 51 def checkedRun(self, ctx): |
46 if not hasattr(ctx.args, 'sub_func'): | 52 if not hasattr(ctx.args, 'sub_func'): |
47 return self._runFoodTruck(ctx) | 53 return self._runFoodTruck(ctx) |
48 return ctx.args.sub_func(ctx) | 54 return ctx.args.sub_func(ctx) |
49 | 55 |
50 def _runFoodTruck(self, ctx): | 56 def _runFoodTruck(self, ctx): |
51 from piecrust.processing.pipeline import ProcessorPipeline | 57 # See `_run_sse_check` in `piecrust.serving.wrappers` for an explanation |
52 out_dir = os.path.join( | 58 # of this check. |
53 ctx.app.root_dir, CACHE_DIR, 'foodtruck', 'server') | 59 if (ctx.args.monitor_assets and ( |
54 proc = ProcessorPipeline(ctx.app, out_dir) | 60 not ctx.args.debug or |
55 proc.run() | 61 os.environ.get('WERKZEUG_RUN_MAIN') == 'true')): |
62 from piecrust.serving.procloop import ProcessingLoop | |
63 out_dir = os.path.join(ctx.app.root_dir, CACHE_DIR, 'foodtruck', 'server') | |
64 proc_loop = ProcessingLoop(ctx.app.root_dir, out_dir, debug=ctx.args.debug) | |
65 proc_loop.start() | |
56 | 66 |
57 from foodtruck import settings | 67 from foodtruck import settings |
58 settings.FOODTRUCK_CMDLINE_MODE = True | 68 settings.FOODTRUCK_CMDLINE_MODE = True |
59 settings.FOODTRUCK_ROOT = ctx.app.root_dir | 69 settings.FOODTRUCK_ROOT = ctx.app.root_dir |
60 from foodtruck.main import run_foodtruck | 70 from foodtruck.main import run_foodtruck |