except ImportError as e:
shlex_join = e
+try:
+ from shlex import quote as shlex_quote
+except ImportError as e:
+ shlex_quote = e
+
class NoCommand(Exception):
pass
interface = programlisting.get('interface')
argv = [f'{opts.build_dir}/{executable}', f'--bus-introspect={interface}']
- print(f'COMMAND: {shlex_join(argv)}')
+ if isinstance(shlex_join, Exception):
+ print(f'COMMAND: {" ".join(shlex_quote(arg) for arg in argv)}')
+ else:
+ print(f'COMMAND: {shlex_join(argv)}')
try:
out = subprocess.check_output(argv, text=True)
if __name__ == '__main__':
opts = parse_args()
- for item in (etree, shlex_join):
+ for item in (etree, shlex_quote):
if isinstance(item, Exception):
print(item, file=sys.stderr)
exit(77 if opts.test else 1)
# Let's print all statistics at the end
mlen = max(len(page) for page in stats)
- total = sum((item['stats'] for item in stats.values()), start=collections.Counter())
+ total = sum((item['stats'] for item in stats.values()), collections.Counter())
total = 'total', dict(stats=total, outdated=False)
outdated = []
for page, info in sorted(stats.items()) + [total]: