Mercurial > piecrust2
comparison piecrust/commands/builtin/admin.py @ 762:c84647485ab2
admin: Fix crash when running the `admin` command.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 30 Jun 2016 22:37:16 -0700 |
parents | dba53f0f7671 |
children | 5e91bc0e3b4d |
comparison
equal
deleted
inserted
replaced
761:4d8e82641597 | 762:c84647485ab2 |
---|---|
47 dest='monitor_assets', | 47 dest='monitor_assets', |
48 action='store_false') | 48 action='store_false') |
49 p.set_defaults(sub_func=self._runFoodTruck) | 49 p.set_defaults(sub_func=self._runFoodTruck) |
50 | 50 |
51 def checkedRun(self, ctx): | 51 def checkedRun(self, ctx): |
52 if ctx.app.root_dir is None: | |
53 raise SiteNotFoundError(theme=ctx.app.theme_site) | |
54 | |
52 if not hasattr(ctx.args, 'sub_func'): | 55 if not hasattr(ctx.args, 'sub_func'): |
53 return self._runFoodTruck(ctx) | 56 ctx.parser.parse_args(['admin', '--help']) |
57 return | |
54 return ctx.args.sub_func(ctx) | 58 return ctx.args.sub_func(ctx) |
55 | 59 |
56 def _runFoodTruck(self, ctx): | 60 def _runFoodTruck(self, ctx): |
57 # See `_run_sse_check` in `piecrust.serving.wrappers` for an explanation | 61 # See `_run_sse_check` in `piecrust.serving.wrappers` for an explanation |
58 # of this check. | 62 # of this check. |
59 if (ctx.args.monitor_assets and ( | 63 if (ctx.args.monitor_assets and ( |
60 not ctx.args.debug or | 64 not ctx.args.debug or |
61 os.environ.get('WERKZEUG_RUN_MAIN') == 'true')): | 65 os.environ.get('WERKZEUG_RUN_MAIN') == 'true')): |
66 from piecrust.app import PieCrustFactory | |
62 from piecrust.serving.procloop import ProcessingLoop | 67 from piecrust.serving.procloop import ProcessingLoop |
68 appfactory = PieCrustFactory( | |
69 ctx.app.root_dir, | |
70 cache=ctx.app.cache.enabled, | |
71 cache_key=ctx.app.cache_key, | |
72 config_variant=ctx.config_variant, | |
73 config_values=ctx.config_values, | |
74 debug=ctx.app.debug, | |
75 theme_site=ctx.app.theme_site) | |
63 out_dir = os.path.join(ctx.app.root_dir, CACHE_DIR, 'foodtruck', 'server') | 76 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) | 77 proc_loop = ProcessingLoop(appfactory, out_dir) |
65 proc_loop.start() | 78 proc_loop.start() |
66 | 79 |
67 from foodtruck import settings | 80 from foodtruck import settings |
68 settings.FOODTRUCK_CMDLINE_MODE = True | 81 settings.FOODTRUCK_CMDLINE_MODE = True |
69 settings.FOODTRUCK_ROOT = ctx.app.root_dir | 82 settings.FOODTRUCK_ROOT = ctx.app.root_dir |