update-dbus-docs: skip test if python is too old
diff --git a/tools/update-dbus-docs.py b/tools/update-dbus-docs.py
index 255d7e1..14ae30f 100755
--- a/tools/update-dbus-docs.py
+++ b/tools/update-dbus-docs.py
@@ -5,7 +5,6 @@
import collections
import sys
import os
-import shlex
import subprocess
import io
@@ -14,6 +13,11 @@
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 @@
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 @@
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=.")