From cc1ae4a96315a063a051703f16857da957a65bbd Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Wed, 6 May 2020 20:14:03 +0100 Subject: [PATCH] Add utility function to checkout a generated project --- test/template_projects/__main__.py | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/template_projects/__main__.py diff --git a/test/template_projects/__main__.py b/test/template_projects/__main__.py new file mode 100644 index 00000000..87771528 --- /dev/null +++ b/test/template_projects/__main__.py @@ -0,0 +1,37 @@ +from argparse import ArgumentParser +import importlib +import tempfile +import sys +import subprocess + + +def main(): + parser = ArgumentParser( + prog="python -m test.template_projects", + description='Generate a template project to check it out' + ) + parser.add_argument('PROJECT', help=''' + Python path to a project object. E.g. test.test_0_basic.basic_project + ''') + options = parser.parse_args() + + module, _, name = options.PROJECT.rpartition('.') + + project = getattr(importlib.import_module(module), name) + + project_dir = tempfile.mkdtemp() + project.generate(project_dir) + + print('Project generated at', project_dir) + print() + + if sys.platform == 'darwin': + subprocess.check_call(['open', '--', project_dir]) + elif sys.platform == 'linux2': + subprocess.check_call(['xdg-open', '--', project_dir]) + elif sys.platform == 'win32': + subprocess.check_call(['explorer', project_dir]) + + +if __name__ == '__main__': + main()