]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1945] default to determining list of files automatically in api2doc.py and mes2doc.py
authorAndrei Pavel <andrei@isc.org>
Mon, 19 Aug 2024 16:06:41 +0000 (19:06 +0300)
committerAndrei Pavel <andrei@isc.org>
Thu, 22 Aug 2024 12:47:24 +0000 (15:47 +0300)
doc/sphinx/Makefile.am
doc/sphinx/api2doc.py
doc/sphinx/mes2doc.py

index 9689d4fe87de30ff8456d0b99d343c5f4460e0c3..e0866a987fbf75432bb75f4076ec4d321785453c 100644 (file)
@@ -75,8 +75,8 @@ mes-files.txt:
 
 # this rule is only used for development purposes and is not used in official
 # build process as kea-messages.rst is always generated via sphinx's conf.py
-$(srcdir)/kea-messages.rst: $(mes_files) mes2doc.py
-       $(PYTHON) $(srcdir)/mes2doc.py -o $@ $(mes_files)
+$(srcdir)/kea-messages.rst: mes2doc.py
+       $(PYTHON) $(srcdir)/mes2doc.py -o $@
 
 # build the list of api files
 api-files.txt: $(top_srcdir)/src/share/api/api_files.mk
@@ -87,8 +87,8 @@ EXTRA_DIST += mes-files.txt api-files.txt
 
 # this rule is only used for development purposes and is not used in official
 # build process as api.rst is always generated via sphinx's conf.py
-$(srcdir)/api.rst: $(api_files) api-files.txt api2doc.py
-       $(PYTHON) $(srcdir)/api2doc.py -o $@ $(api_files)
+$(srcdir)/api.rst: api2doc.py
+       $(PYTHON) $(srcdir)/api2doc.py -o $@
 
 $(srcdir)/arm/platforms.rst:
        rm -f $(srcdir)/arm/platforms.rst
index cc78e21bf2d2884c359d758f94a53c16b3ef8bd2..d66f9dc6948f8ec51f5080c452a2d41e86bdab35 100755 (executable)
 # - reads *.json files (each file describes a single command)
 # - produces .rst file suitable for Sphinx as output
 
-import os
-import json
 import argparse
 import collections
+import json
+import os
+import pathlib
+import sys
 
 
 def parse_args():
     parser = argparse.ArgumentParser(description='Convert set of *.json files to .rst documentation format')
     parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
-    parser.add_argument('files', help='Input API .json files.', nargs='+')
+    parser.add_argument('files', help='Input API .json files.', nargs='?')
 
     args = parser.parse_args()
     return args
@@ -205,7 +207,14 @@ def generate(in_files, out_file):
 
 def main():
     args = parse_args()
-    generate(args.files, args.output)
+    if args.files is None:
+        parent_dir = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0])))
+        mes_files = sorted(pathlib.Path(f'{parent_dir}/../..').glob('src/share/api/*.json'))
+        # Convert from Path to str.
+        mes_files = [str(i) for i in mes_files]
+    else:
+        mes_files = args.files
+    generate(mes_files, args.output)
 
 
 if __name__ == '__main__':
index 06c481a46fcaff6f83efba3037e0cb5605215dda..49772282c379988aa3faf099ec23530a25b7e1cb 100755 (executable)
 # The produced format is ReStructuredText.
 
 import argparse
+import os
 import pathlib
 import re
+import sys
 
 
 def parse_args():
     parser = argparse.ArgumentParser(description='Convert set of *.mes files to .rst documentation format')
     parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
-    parser.add_argument('files', help='Input .mes files.', nargs='+')
+    parser.add_argument('files', help='Input .mes files.', nargs='?')
 
     args = parser.parse_args()
     return args
@@ -116,7 +118,7 @@ used to indicate a placeholder for data that is provided by the Kea code during
         rst += '=' * len(msg_id) + '\n'
         rst += '\n'
 
-        rst += '.. code-block::\n'
+        rst += '.. code-block:: text\n'
         rst += '\n'
         rst += '    ' + msg_text + '\n'
         rst += '\n'
@@ -152,7 +154,14 @@ def generate(in_files, out_file):
 
 def main():
     args = parse_args()
-    generate(args.files, args.output)
+    if args.files is None:
+        parent_dir = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0])))
+        mes_files = sorted(pathlib.Path(f'{parent_dir}/../..').glob('**/*.mes'))
+        # Convert from Path to str.
+        mes_files = [str(i) for i in mes_files]
+    else:
+        mes_files = args.files
+    generate(mes_files, args.output)
 
 
 if __name__ == '__main__':