import argparse
import glob
import itertools
-import os
import subprocess
import sys
import venv
"""Start the script."""
args = create_argument_parser()
- source_root = Path(os.environ["MESON_SOURCE_ROOT"])
- build_root = Path(os.environ["MESON_BUILD_ROOT"])
+ source_root = args.source_root
+ build_root = args.build_root
# Create the venv.
venv_directory = build_root.joinpath(args.venv_name)
# Install some stuff into the venv.
requirements_file = source_root.joinpath(args.requirements_file)
pip = venv_directory.joinpath("bin").joinpath("pip")
- subprocess.run([pip, "install", "-U", "pip", "setuptools", "wheel"])
- subprocess.run([pip, "install", "-r", requirements_file])
+ 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.
source_directory = source_root.joinpath(args.source_directory)
source_directory,
target_directory,
]
- + files
+ + files,
+ check=True
)
parser = argparse.ArgumentParser(
description="Create a virtualenv from a requirements file"
)
+ parser.add_argument(
+ "--build-root",
+ type=Path,
+ required=True,
+ help="Build root",
+ )
+ parser.add_argument(
+ "--source-root",
+ type=Path,
+ required=True,
+ help="Source root",
+ )
parser.add_argument(
"--venv-name",
type=str,
if 'manpages' in info
foreach man_page: info['manpages']
man_pages += docs_dir / 'manpages' / (man_page + '.rst')
- install_man(man_page)
endforeach
endif
endforeach
summary('Version', python.version(), section: 'Manual Pages')
if python.found()
- run_target(
- 'man-pages',
- command: [
- python,
- product_source_dir / docs_dir / 'generate-man-pages.py',
- '--venv-name', 'venv-dnsdist-man-pages',
- '--requirements-file', docs_dir / 'requirements.txt',
- '--source-directory', docs_dir,
- '--target-directory', 'dnsdist-man-pages',
- ] + man_pages,
+ generated_man_pages = []
+ foreach tool, info: tools
+ if 'manpages' in info
+ foreach man_page: info['manpages']
+ generated_man_pages += man_page
+ endforeach
+ endif
+ endforeach
+ custom_target(
+ 'man-pages',
+ input: man_pages,
+ output: generated_man_pages,
+ install: true,
+ install_dir: join_paths(get_option('mandir'), 'man1'),
+ command: [
+ python,
+ product_source_dir / docs_dir / 'generate-man-pages.py',
+ '--build-root', '@BUILD_ROOT@',
+ '--source-root', '@SOURCE_ROOT@',
+ '--venv-name', 'venv-dnsdist-man-pages',
+ '--requirements-file', docs_dir / 'requirements.txt',
+ '--source-directory', docs_dir,
+ '--target-directory', 'dnsdist-man-pages',
+ ] + man_pages,
)
endif