from __future__ import annotations import os import shutil import subprocess from . import destdir_join import argparse import typing as T parser = argparse.ArgumentParser() parser.add_argument('--install') parser.add_argument('--extra-extension-path', action="append", default=[]) parser.add_argument('--name') parser.add_argument('--builddir') parser.add_argument('--project-version') def run(argv: T.List[str]) -> int: options, args = parser.parse_known_args(argv) subenv = os.environ.copy() for ext_path in options.extra_extension_path: subenv['PYTHONPATH'] = subenv.get('PYTHONPATH', '') + ':' + ext_path res = subprocess.call(args, cwd=options.builddir, env=subenv) if res != 0: return res if options.install: source_dir = os.path.join(options.builddir, options.install) destdir = os.environ.get('DESTDIR', '') installdir = destdir_join(destdir, os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share/doc/', options.name, "html")) shutil.rmtree(installdir, ignore_errors=True) shutil.copytree(source_dir, installdir) return 0