changeset 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
files extensions/kwarchive.py
diffstat 1 files changed, 25 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- 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):