| 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') |
| parser.add_argument('--docdir') |
| |
| |
| def run(argv: T.List[str]) -> int: |
| options, args = parser.parse_known_args(argv) |
| subenv = os.environ.copy() |
| |
| val = subenv.get('PYTHONPATH') |
| paths = [val] if val else [] |
| subenv['PYTHONPATH'] = os.pathsep.join(paths + options.extra_extension_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, options.docdir) |
| |
| shutil.rmtree(installdir, ignore_errors=True) |
| shutil.copytree(source_dir, installdir) |
| return 0 |