# HG changeset patch # User Franz Glasner # Date 1548603390 -3600 # Node ID 2eb443e77cff15e3b6c517169a74fe2b7696bffa # Parent 75070825d111055ade39e5ab796274c7c06a6d82 Refactor: put the real keyword printing into a separate function. This function can and should be used for printing subrepo keywords also. diff -r 75070825d111 -r 2eb443e77cff extensions/kwarchive.py --- a/extensions/kwarchive.py Sun Jan 27 16:08:31 2019 +0100 +++ b/extensions/kwarchive.py Sun Jan 27 16:36:30 2019 +0100 @@ -343,12 +343,28 @@ path_filter=get_checked_path_filter_option(opts), user_filter=get_checked_user_filter_option(opts)) # make file-dependent keywords for an example file - file_keywords = make_file_keywords( - keywords, - "dir1/dir2/test.file", - "a4dd6f4b22e11fec41158eec187630c24a43120a") + if not opts.get("no_file"): + file_keywords = make_file_keywords( + keywords, + "dir1/dir2/test.file", + "a4dd6f4b22e11fec41158eec187630c24a43120a") + else: + file_keywords = None + _kwprint_keywords(ui, keywords, file_keywords, + opts.get("reST"), + opts.get("no_file")) + if opts.get("subrepos"): + _kwprint_subrepos(ctx, ui, + opts.get("reST"), + opts.get("no_file"), + path_filter=get_checked_path_filter_option(opts), + user_filter=get_checked_user_filter_option(opts)) + + +def _kwprint_keywords(ui, keywords, file_keywords, rest, no_file): + """Print all the prepared keywords into the output""" for key in sorted(keywords.keys()): - if opts.get("reST"): + if rest: if keywords[key]: ui.write(".. |VCS%s| replace:: %s\n" % (key, keywords[key])) else: @@ -359,18 +375,16 @@ ui.write(".. |VCS%s| unicode:: 0xA0\n" % key) else: ui.write("$%s: %s $\n" % (key, keywords[key])) - if not opts.get("no_file"): + if not no_file: ui.write("\n") for key in sorted(file_keywords.keys()): - if opts.get("reST"): + if rest: ui.write(".. |VCS%s| replace:: %s\n" % (key, file_keywords[key])) else: ui.write("$%s: %s $\n" % (key, file_keywords[key])) - if opts.get("subrepos"): - _kwprint_subrepos(ctx, ui) -def _kwprint_subrepos(ctx, ui): +def _kwprint_subrepos(ctx, ui, rest, no_file, path_filter, user_filter): """For all subrepos in `ctx` do keyword expansion resursively""" ui.write("STATE: " + repr(subrepo.state(ctx, ui)) + "\n") for subpath in sorted(ctx.substate): @@ -380,7 +394,7 @@ keywords = make_node_keywords(ui, subctx) ui.write("KWD: " + repr(keywords) + "\n") # Recursively check for other subrepos - _test_subrepos(subctx, ui) + _kwprint_subrepos(subctx, ui, rest, no_file, path_filter, user_filter) def _test_subrepos(ctx, ui):