build support: sort list of installed items, factor out pretty printer
authorGerhard Sittig <gerhard.sittig@gmx.net>
Sun, 20 Nov 2016 15:51:47 +0000 (16:51 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Tue, 6 Dec 2016 21:10:14 +0000 (22:10 +0100)
Alpha-sort the list of installed items, to support developers which scan
the list for newly added items. Factor out the logic which pretty prints
installed items while maintaining a maximum screen output line length.

tools/install-decoders

index 8445da561df4beb55f6056f445f4ad2773dec546..3772bd5aefbc108b0698c3645d57bfe0ad7e0e46 100755 (executable)
@@ -24,6 +24,20 @@ from shutil import copy
 from getopt import getopt
 
 
+_inst_pp_col_max = 80
+_inst_pp_col = 0
+def _install_pretty_print(item):
+    """Pretty print an install item. Enforce maximum line width."""
+    global _inst_pp_col
+    if item is None:
+        _inst_pp_col = 0
+        return
+    _inst_pp_col += len(item)
+    if _inst_pp_col > _inst_pp_col_max:
+        print()
+        _inst_pp_col = len(item)
+    print(item, end = "")
+
 def install(srcdir, dstdir, s):
     worklist = []
     for pd in os.listdir(srcdir):
@@ -42,15 +56,10 @@ def install(srcdir, dstdir, s):
         if install_list:
             worklist.append((pd, pd_dir, install_list))
 
+    worklist.sort()
     print("Installing %d %s:" % (len(worklist), s))
-    col = 0
     for pd, pd_dir, install_list in worklist:
-        msg = pd + ' '
-        if (col + len(msg) > 80):
-            print()
-            col = 0
-        print(msg, end='')
-        col += len(msg)
+        _install_pretty_print("{} ".format(pd))
         pd_dst = os.path.join(dstdir, pd)
         try:
             os.mkdir(pd_dst)
@@ -62,6 +71,7 @@ def install(srcdir, dstdir, s):
         for f in install_list:
             copy(os.path.join(pd_dir, f), pd_dst)
     print()
+    _install_pretty_print(None)
 
 
 def config_get_extra_install(config_file):