Files
cibuildwheel/test/test_projects/__main__.py
T
2025-02-28 16:38:15 -05:00

50 lines
1.4 KiB
Python

import importlib
import subprocess
import sys
import tempfile
from argparse import ArgumentParser
from pathlib import Path
def main() -> None:
parser = ArgumentParser(
prog="python -m test.test_projects", description="Generate a test project to check it out"
)
parser.add_argument(
"--open",
action="store_true",
help="Open the generated project in a file explorer",
)
parser.add_argument(
"PROJECT",
help="Python path to a project object. E.g. test.test_0_basic.basic_project",
)
parser.add_argument(
"OUTPUT",
nargs="?",
help="Path to output dir. If no dir is passed, a tempdir will be generated.",
)
options = parser.parse_args()
module, _, name = options.PROJECT.rpartition(".")
project = getattr(importlib.import_module(module), name)
project_dir = Path(options.OUTPUT or tempfile.mkdtemp())
project.generate(project_dir)
print("Project generated at", project_dir)
print()
if options.open:
if sys.platform == "darwin":
subprocess.run(["open", "--", project_dir], check=True)
elif sys.platform == "linux2":
subprocess.run(["xdg-open", "--", project_dir], check=True)
elif sys.platform == "win32":
subprocess.run(["explorer", project_dir], check=True)
if __name__ == "__main__":
main()