Skip to content

Commit

Permalink
Generate tarball and pdf and introduce all-docs target
Browse files Browse the repository at this point in the history
  • Loading branch information
omoerbeek committed Feb 17, 2025
1 parent 7e62df2 commit 79ec17b
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 8 deletions.
28 changes: 23 additions & 5 deletions docs/generate-docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import argparse
import glob
import itertools
import os
import subprocess
import sys
import venv
Expand Down Expand Up @@ -32,24 +33,35 @@ def main():
subprocess.run([pip, "install", "-U", "pip", "setuptools", "wheel"], check=True)
subprocess.run([pip, "install", "-r", requirements_file], check=True)

# Run sphinx to generate the man-pages.
# Run sphinx to generate the docs
source_directory = source_root.joinpath(args.source_directory)
target_directory = build_root.joinpath(args.target_directory)
files = [glob.glob(str(source_root.joinpath(pat))) for pat in args.files]
files = list(itertools.chain.from_iterable(files))
sphinx_build = venv_directory.joinpath("bin").joinpath("sphinx-build")
subprocess.run(
[

if args.latex_name:
buildargs = [

Check warning on line 44 in docs/generate-docs.py

View workflow job for this annotation

GitHub Actions / Spell checking

`buildargs` is not a recognized word. (unrecognized-spelling)
sphinx_build,
"-M",
"latexpdf",
source_directory,
'.'
]
else:
buildargs = [

Check warning on line 52 in docs/generate-docs.py

View workflow job for this annotation

GitHub Actions / Spell checking

`buildargs` is not a recognized word. (unrecognized-spelling)
sphinx_build,
"-b",
"html",
source_directory,
target_directory,
]
+ files, # default is to do all
subprocess.run(
buildargs + files, # default is to do all

Check warning on line 60 in docs/generate-docs.py

View workflow job for this annotation

GitHub Actions / Spell checking

`buildargs` is not a recognized word. (unrecognized-spelling)
check=True
)

if args.latex_name:
os.rename(build_root.joinpath('latex').joinpath(args.latex_name), args.latex_name)

def create_argument_parser():
"""Create command-line argument parser."""
Expand Down Expand Up @@ -92,6 +104,12 @@ def create_argument_parser():
required=True,
help="Target directory for man-pages relative to the build root",
)
parser.add_argument(
"--latex-name",
type=Path,
required=False,
help="Generate latex instead of html",
)
parser.add_argument(
"files",
type=Path,
Expand Down
36 changes: 33 additions & 3 deletions pdns/recursordist/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -734,7 +734,7 @@ dep_conf_distfile = custom_target(
install_dir: get_option('sysconfdir'),
)

run_target(
html_docs = custom_target(
'html-docs',
command: [
python,
Expand All @@ -745,5 +745,35 @@ run_target(
'--requirements-file', docs_dir / 'requirements.txt',
'--source-directory', docs_dir,
'--target-directory', '@BUILD_ROOT@' / 'html-docs',
]
)
],
output: 'html-docs',
console: true,
)

docs_tarball = custom_target(
'html-docs.tar.bz2',
command: ['tar', 'cjf', 'html-docs.tar.bz2', html_docs],
output: 'html-docs.tar.bz2',
)

latex_docs = custom_target(
command: [
python,
product_source_dir / docs_dir / 'generate-docs.py',
'--build-root', '@BUILD_ROOT@',
'--source-root', '@SOURCE_ROOT@',
'--venv-name', 'venv-docs',
'--requirements-file', docs_dir / 'requirements.txt',
'--source-directory', docs_dir,
'--target-directory', '@BUILD_ROOT@',
'--latex-name', 'PowerDNS-Recursor.pdf',
],
output: 'PowerDNS-Recursor.pdf',
console: true,
)

run_target(
'all-docs',
command: ['echo', 'Generated', html_docs, docs_tarball, latex_docs],
)

0 comments on commit 79ec17b

Please sign in to comment.