Mercurial > piecrust2
comparison piecrust/commands/builtin/baking.py @ 801:87df68be4cc8
showrecord: Add `show-manifest` argument.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 29 Sep 2016 21:28:20 -0700 |
parents | 78de21447e4e |
children | 08e6484a2600 |
comparison
equal
deleted
inserted
replaced
800:d4b9d86d3d6f | 801:87df68be4cc8 |
---|---|
196 help="Only show records for assets (not from pages).") | 196 help="Only show records for assets (not from pages).") |
197 parser.add_argument( | 197 parser.add_argument( |
198 '--show-stats', | 198 '--show-stats', |
199 action='store_true', | 199 action='store_true', |
200 help="Show stats from the record.") | 200 help="Show stats from the record.") |
201 parser.add_argument( | |
202 '--show-manifest', | |
203 help="Show manifest entries from the record.") | |
201 | 204 |
202 def run(self, ctx): | 205 def run(self, ctx): |
203 out_dir = ctx.args.output or os.path.join(ctx.app.root_dir, '_counter') | 206 out_dir = ctx.args.output or os.path.join(ctx.app.root_dir, '_counter') |
204 record_id = hashlib.md5(out_dir.encode('utf8')).hexdigest() | 207 record_id = hashlib.md5(out_dir.encode('utf8')).hexdigest() |
205 suffix = '' if ctx.args.last == 0 else '.%d' % ctx.args.last | 208 suffix = '' if ctx.args.last == 0 else '.%d' % ctx.args.last |
211 | 214 |
212 out_pattern = None | 215 out_pattern = None |
213 if ctx.args.out: | 216 if ctx.args.out: |
214 out_pattern = '*%s*' % ctx.args.out.strip('*') | 217 out_pattern = '*%s*' % ctx.args.out.strip('*') |
215 | 218 |
216 if not ctx.args.show_stats: | 219 if not ctx.args.show_stats and not ctx.args.show_manifest: |
217 if not ctx.args.assets_only: | 220 if not ctx.args.assets_only: |
218 self._showBakeRecord( | 221 self._showBakeRecord( |
219 ctx, record_name, pattern, out_pattern) | 222 ctx, record_name, pattern, out_pattern) |
220 if not ctx.args.html_only: | 223 if not ctx.args.html_only: |
221 self._showProcessingRecord( | 224 self._showProcessingRecord( |
222 ctx, record_name, pattern, out_pattern) | 225 ctx, record_name, pattern, out_pattern) |
226 return | |
227 | |
228 stats = {} | |
229 bake_rec = self._getBakeRecord(ctx, record_name) | |
230 if bake_rec: | |
231 _merge_stats(bake_rec.stats, stats) | |
232 proc_rec = self._getProcessingRecord(ctx, record_name) | |
233 if proc_rec: | |
234 _merge_stats(proc_rec.stats, stats) | |
223 | 235 |
224 if ctx.args.show_stats: | 236 if ctx.args.show_stats: |
225 stats = {} | |
226 bake_rec = self._getBakeRecord(ctx, record_name) | |
227 if bake_rec: | |
228 _merge_stats(bake_rec.stats, stats) | |
229 proc_rec = self._getProcessingRecord(ctx, record_name) | |
230 if proc_rec: | |
231 _merge_stats(proc_rec.stats, stats) | |
232 _show_stats(stats, full=False) | 237 _show_stats(stats, full=False) |
238 | |
239 if ctx.args.show_manifest: | |
240 for name in sorted(stats.keys()): | |
241 logger.info('%s:' % name) | |
242 s = stats[name] | |
243 for name in sorted(s.manifests.keys()): | |
244 if ctx.args.show_manifest.lower() in name.lower(): | |
245 val = s.manifests[name] | |
246 logger.info( | |
247 " [%s%s%s] [%d entries]" % | |
248 (Fore.CYAN, name, Fore.RESET, len(val))) | |
249 for v in val: | |
250 logger.info(" - %s" % v) | |
251 | |
252 | |
233 | 253 |
234 def _getBakeRecord(self, ctx, record_name): | 254 def _getBakeRecord(self, ctx, record_name): |
235 record_cache = ctx.app.cache.getCache('baker') | 255 record_cache = ctx.app.cache.getCache('baker') |
236 if not record_cache.has(record_name): | 256 if not record_cache.has(record_name): |
237 logger.warning( | 257 logger.warning( |