diff --git a/noxfile.py b/noxfile.py index d07f771..526bfce 100644 --- a/noxfile.py +++ b/noxfile.py @@ -190,6 +190,22 @@ def dynamic_session(session: nox.Session): ) +def add_dynamic_maya_standalone_session(maya_version, mayapy, command): + session_name = f"maya-{maya_version}-s" + + @nox.session(name=session_name, python=False) + def dynamic_session(session: nox.Session): + parser = argparse.ArgumentParser(prog=f"nox -s maya-{maya_version}-s") + parser.add_argument("pattern", type=str) + args = parser.parse_args(session.posargs) + session.run( + mayapy, + command, + args.pattern, + env={"PYTHONPATH": ROOT}, + ) + + # Dynamic to set up nox sessions for Maya 2018-2026. # For example, to run tests for Maya 2018, run: # nox -s maya-2018 @@ -200,6 +216,8 @@ def dynamic_session(session: nox.Session): maya_python = os.path.join(maya_setup["bin_root"], "mayapy.exe") test_runner = os.path.join(ROOT, "tests", "_test_runner.py") add_dynamic_maya_test_session(maya_version, maya_python, test_runner) + standalone_runner = os.path.join(ROOT, "run_maya_standalone.py") + add_dynamic_maya_standalone_session(maya_version, maya_python, standalone_runner) @nox.session(name="make-zip") @@ -237,6 +255,6 @@ def make_install_zip(session: nox.Session): for root, _, files in os.walk(build_root): for file in files: zip_obj.write(os.path.join(root, file), - os.path.relpath(os.path.join(root, file), - os.path.join(build_root, '.'))) + os.path.relpath(os.path.join(root, file), + os.path.join(build_root, '.'))) print("Saving to %s" % zip_file) diff --git a/run_maya_standalone.py b/run_maya_standalone.py new file mode 100644 index 0000000..3b0fdbb --- /dev/null +++ b/run_maya_standalone.py @@ -0,0 +1,9 @@ +from maya_umbrella.maya_funs import maya_standalone_context +from maya_umbrella import MayaVirusScanner +import sys + +pattern = sys.argv[-1] +print("Current pattern: {}".format(pattern)) +with maya_standalone_context() as cmds: + api = MayaVirusScanner() + api.scan_files_from_pattern(pattern)