Mercurial > hgrepos > DevTools > mercurial-extensions
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): |
