update-dbus-docs: use argparse
diff --git a/tools/update-dbus-docs.py b/tools/update-dbus-docs.py
index 8aa3742..bfe5522 100755
--- a/tools/update-dbus-docs.py
+++ b/tools/update-dbus-docs.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python3
 # SPDX-License-Identifier: LGPL-2.1+
 
+import argparse
 import collections
 import sys
 import os
@@ -178,7 +179,7 @@
     node = programlisting.get('node')
     interface = programlisting.get('interface')
 
-    argv = [f'{build_dir}/{executable}', f'--bus-introspect={interface}']
+    argv = [f'{opts.build_dir}/{executable}', f'--bus-introspect={interface}']
     print(f'COMMAND: {shlex.join(argv)}')
 
     try:
@@ -275,19 +276,19 @@
 
     return stats
 
+def parse_args():
+    p = argparse.ArgumentParser()
+    p.add_argument('--build-dir', default='build')
+    p.add_argument('pages', nargs='+')
+    return p.parse_args()
+
 if __name__ == '__main__':
-    pages = sys.argv[1:]
+    opts = parse_args()
 
-    if pages[0].startswith('--build-dir='):
-        build_dir = pages[0].partition('=')[2]
-        pages = pages[1:]
-    else:
-        build_dir = 'build'
+    if not os.path.exists(f'{opts.build_dir}/systemd'):
+        exit(f"{opts.build_dir}/systemd doesn't exist. Use --build-dir=.")
 
-    if not os.path.exists(f'{build_dir}/systemd'):
-        exit(f"{build_dir}/systemd doesn't exist. Use --build-dir=.")
-
-    stats = {page.split('/')[-1] : process(page) for page in pages}
+    stats = {page.split('/')[-1] : process(page) for page in opts.pages}
 
     # Let's print all statistics at the end
     mlen = max(len(page) for page in stats)