comparison extensions/kwarchive.py @ 294:2eb443e77cff

Refactor: put the real keyword printing into a separate function. This function can and should be used for printing subrepo keywords also.
author Franz Glasner <hg@dom66.de>
date Sun, 27 Jan 2019 16:36:30 +0100
parents 75070825d111
children eeb8c52d8802
comparison
equal deleted inserted replaced
293:75070825d111 294:2eb443e77cff
341 ui, ctx, 341 ui, ctx,
342 hgpath=opts.get("path"), 342 hgpath=opts.get("path"),
343 path_filter=get_checked_path_filter_option(opts), 343 path_filter=get_checked_path_filter_option(opts),
344 user_filter=get_checked_user_filter_option(opts)) 344 user_filter=get_checked_user_filter_option(opts))
345 # make file-dependent keywords for an example file 345 # make file-dependent keywords for an example file
346 file_keywords = make_file_keywords( 346 if not opts.get("no_file"):
347 keywords, 347 file_keywords = make_file_keywords(
348 "dir1/dir2/test.file", 348 keywords,
349 "a4dd6f4b22e11fec41158eec187630c24a43120a") 349 "dir1/dir2/test.file",
350 "a4dd6f4b22e11fec41158eec187630c24a43120a")
351 else:
352 file_keywords = None
353 _kwprint_keywords(ui, keywords, file_keywords,
354 opts.get("reST"),
355 opts.get("no_file"))
356 if opts.get("subrepos"):
357 _kwprint_subrepos(ctx, ui,
358 opts.get("reST"),
359 opts.get("no_file"),
360 path_filter=get_checked_path_filter_option(opts),
361 user_filter=get_checked_user_filter_option(opts))
362
363
364 def _kwprint_keywords(ui, keywords, file_keywords, rest, no_file):
365 """Print all the prepared keywords into the output"""
350 for key in sorted(keywords.keys()): 366 for key in sorted(keywords.keys()):
351 if opts.get("reST"): 367 if rest:
352 if keywords[key]: 368 if keywords[key]:
353 ui.write(".. |VCS%s| replace:: %s\n" % (key, keywords[key])) 369 ui.write(".. |VCS%s| replace:: %s\n" % (key, keywords[key]))
354 else: 370 else:
355 # 371 #
356 # empty replacements are not allowed: 372 # empty replacements are not allowed:
357 # write a non-breaking space instead 373 # write a non-breaking space instead
358 # 374 #
359 ui.write(".. |VCS%s| unicode:: 0xA0\n" % key) 375 ui.write(".. |VCS%s| unicode:: 0xA0\n" % key)
360 else: 376 else:
361 ui.write("$%s: %s $\n" % (key, keywords[key])) 377 ui.write("$%s: %s $\n" % (key, keywords[key]))
362 if not opts.get("no_file"): 378 if not no_file:
363 ui.write("\n") 379 ui.write("\n")
364 for key in sorted(file_keywords.keys()): 380 for key in sorted(file_keywords.keys()):
365 if opts.get("reST"): 381 if rest:
366 ui.write(".. |VCS%s| replace:: %s\n" % (key, file_keywords[key])) 382 ui.write(".. |VCS%s| replace:: %s\n" % (key, file_keywords[key]))
367 else: 383 else:
368 ui.write("$%s: %s $\n" % (key, file_keywords[key])) 384 ui.write("$%s: %s $\n" % (key, file_keywords[key]))
369 if opts.get("subrepos"): 385
370 _kwprint_subrepos(ctx, ui) 386
371 387 def _kwprint_subrepos(ctx, ui, rest, no_file, path_filter, user_filter):
372
373 def _kwprint_subrepos(ctx, ui):
374 """For all subrepos in `ctx` do keyword expansion resursively""" 388 """For all subrepos in `ctx` do keyword expansion resursively"""
375 ui.write("STATE: " + repr(subrepo.state(ctx, ui)) + "\n") 389 ui.write("STATE: " + repr(subrepo.state(ctx, ui)) + "\n")
376 for subpath in sorted(ctx.substate): 390 for subpath in sorted(ctx.substate):
377 subrep = ctx.workingsub(subpath) 391 subrep = ctx.workingsub(subpath)
378 subctx = subrep._getctx() 392 subctx = subrep._getctx()
379 assert subctx.repo() == subrep._repo 393 assert subctx.repo() == subrep._repo
380 keywords = make_node_keywords(ui, subctx) 394 keywords = make_node_keywords(ui, subctx)
381 ui.write("KWD: " + repr(keywords) + "\n") 395 ui.write("KWD: " + repr(keywords) + "\n")
382 # Recursively check for other subrepos 396 # Recursively check for other subrepos
383 _test_subrepos(subctx, ui) 397 _kwprint_subrepos(subctx, ui, rest, no_file, path_filter, user_filter)
384 398
385 399
386 def _test_subrepos(ctx, ui): 400 def _test_subrepos(ctx, ui):
387 ui.write("STATE: " + repr(subrepo.state(ctx, ui)) + "\n") 401 ui.write("STATE: " + repr(subrepo.state(ctx, ui)) + "\n")
388 for subpath in sorted(ctx.substate): 402 for subpath in sorted(ctx.substate):