Skip to content

Commit 49392bf

Browse files
committed
[#1945] default to determining list of files automatically in api2doc.py and mes2doc.py
1 parent a56fb8d commit 49392bf

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

doc/sphinx/Makefile.am

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ mes-files.txt:
7575

7676
# this rule is only used for development purposes and is not used in official
7777
# build process as kea-messages.rst is always generated via sphinx's conf.py
78-
$(srcdir)/kea-messages.rst: $(mes_files) mes2doc.py
79-
$(PYTHON) $(srcdir)/mes2doc.py -o $@ $(mes_files)
78+
$(srcdir)/kea-messages.rst: mes2doc.py
79+
$(PYTHON) $(srcdir)/mes2doc.py -o $@
8080

8181
# build the list of api files
8282
api-files.txt: $(top_srcdir)/src/share/api/api_files.mk
@@ -87,8 +87,8 @@ EXTRA_DIST += mes-files.txt api-files.txt
8787

8888
# this rule is only used for development purposes and is not used in official
8989
# build process as api.rst is always generated via sphinx's conf.py
90-
$(srcdir)/api.rst: $(api_files) api-files.txt api2doc.py
91-
$(PYTHON) $(srcdir)/api2doc.py -o $@ $(api_files)
90+
$(srcdir)/api.rst: api2doc.py
91+
$(PYTHON) $(srcdir)/api2doc.py -o $@
9292

9393
$(srcdir)/arm/platforms.rst:
9494
rm -f $(srcdir)/arm/platforms.rst

doc/sphinx/api2doc.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@
1010
# - reads *.json files (each file describes a single command)
1111
# - produces .rst file suitable for Sphinx as output
1212

13-
import os
14-
import json
1513
import argparse
1614
import collections
15+
import json
16+
import os
17+
import pathlib
18+
import sys
1719

1820

1921
def parse_args():
2022
parser = argparse.ArgumentParser(description='Convert set of *.json files to .rst documentation format')
2123
parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
22-
parser.add_argument('files', help='Input API .json files.', nargs='+')
24+
parser.add_argument('files', help='Input API .json files.', nargs='?')
2325

2426
args = parser.parse_args()
2527
return args
@@ -205,7 +207,14 @@ def generate(in_files, out_file):
205207

206208
def main():
207209
args = parse_args()
208-
generate(args.files, args.output)
210+
if args.files is None:
211+
parent_dir = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0])))
212+
mes_files = sorted(pathlib.Path(f'{parent_dir}/../..').glob('src/share/api/*.json'))
213+
# Convert from Path to str.
214+
mes_files = [str(i) for i in mes_files]
215+
else:
216+
mes_files = args.files
217+
generate(mes_files, args.output)
209218

210219

211220
if __name__ == '__main__':

doc/sphinx/mes2doc.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@
2121
# The produced format is ReStructuredText.
2222

2323
import argparse
24+
import os
2425
import pathlib
2526
import re
27+
import sys
2628

2729

2830
def parse_args():
2931
parser = argparse.ArgumentParser(description='Convert set of *.mes files to .rst documentation format')
3032
parser.add_argument('-o', '--output', help='Output file name (default to stdout).')
31-
parser.add_argument('files', help='Input .mes files.', nargs='+')
33+
parser.add_argument('files', help='Input .mes files.', nargs='?')
3234

3335
args = parser.parse_args()
3436
return args
@@ -116,7 +118,7 @@ def generate_rst(messages):
116118
rst += '=' * len(msg_id) + '\n'
117119
rst += '\n'
118120

119-
rst += '.. code-block::\n'
121+
rst += '.. code-block:: text\n'
120122
rst += '\n'
121123
rst += ' ' + msg_text + '\n'
122124
rst += '\n'
@@ -152,7 +154,14 @@ def generate(in_files, out_file):
152154

153155
def main():
154156
args = parse_args()
155-
generate(args.files, args.output)
157+
if args.files is None:
158+
parent_dir = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0])))
159+
mes_files = sorted(pathlib.Path(f'{parent_dir}/../..').glob('**/*.mes'))
160+
# Convert from Path to str.
161+
mes_files = [str(i) for i in mes_files]
162+
else:
163+
mes_files = args.files
164+
generate(mes_files, args.output)
156165

157166

158167
if __name__ == '__main__':

0 commit comments

Comments
 (0)