]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
update-dbus-docs: skip test if python is too old 17086/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 20 Sep 2020 11:15:44 +0000 (13:15 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 20 Sep 2020 11:15:44 +0000 (13:15 +0200)
tools/update-dbus-docs.py

index 255d7e180f59a0bd0356496f6b9400cab823812d..14ae30f33c4827252c94f8697240a7db2c0cf14e 100755 (executable)
@@ -5,7 +5,6 @@ import argparse
 import collections
 import sys
 import os
-import shlex
 import subprocess
 import io
 
@@ -14,6 +13,11 @@ try:
 except ModuleNotFoundError as e:
     etree = e
 
+try:
+    from shlex import join as shlex_join
+except ImportError as e:
+    shlex_join = e
+
 class NoCommand(Exception):
     pass
 
@@ -183,7 +187,7 @@ def subst_output(document, programlisting, stats):
     interface = programlisting.get('interface')
 
     argv = [f'{opts.build_dir}/{executable}', f'--bus-introspect={interface}']
-    print(f'COMMAND: {shlex.join(argv)}')
+    print(f'COMMAND: {shlex_join(argv)}')
 
     try:
         out = subprocess.check_output(argv, text=True)
@@ -293,9 +297,10 @@ def parse_args():
 if __name__ == '__main__':
     opts = parse_args()
 
-    if isinstance(etree, Exception):
-        print(etree, file=sys.stderr)
-        exit(77 if opts.test else 1)
+    for item in (etree, shlex_join):
+        if isinstance(item, Exception):
+            print(item, file=sys.stderr)
+            exit(77 if opts.test else 1)
 
     if not os.path.exists(f'{opts.build_dir}/systemd'):
         exit(f"{opts.build_dir}/systemd doesn't exist. Use --build-dir=.")