From b5b89b5de47c27f4b25165c499c2d25ab6aa1c3c Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Mon, 27 Jun 2011 06:14:35 +0000 Subject: [PATCH] fix for copying python files when python is not found (prints a warning). initialize the filepath in the invoke function rather then the menu. --- game_engine_save_as_runtime.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/game_engine_save_as_runtime.py b/game_engine_save_as_runtime.py index 369169023..f55e2f6de 100644 --- a/game_engine_save_as_runtime.py +++ b/game_engine_save_as_runtime.py @@ -135,13 +135,16 @@ def WriteRuntime(player_path, output_path, copy_python, overwrite_lib, copy_dlls src = os.path.join(blender_dir, py_folder) dst = os.path.join(runtime_dir, py_folder) - if os.path.exists(dst): - if overwrite_lib: - shutil.rmtree(dst) + if os.path.exists(src): + if os.path.exists(dst): + if overwrite_lib: + shutil.rmtree(dst) + shutil.copytree(src, dst, ignore=lambda dir, contents: [i for i in contents if i == '__pycache__']) + else: shutil.copytree(src, dst, ignore=lambda dir, contents: [i for i in contents if i == '__pycache__']) else: - shutil.copytree(src, dst, ignore=lambda dir, contents: [i for i in contents if i == '__pycache__']) - + print("Python not found in %r, skipping pythn copy." % src) + print("done") # And DLLs @@ -193,17 +196,19 @@ class SaveAsRuntime(bpy.types.Operator): self.copy_dlls) print("Finished in %.4fs" % (time.clock()-start_time)) return {'FINISHED'} - + def invoke(self, context, event): + if not self.filepath: + ext = '.app' if sys.platform == 'darwin' else os.path.splitext(bpy.app.binary_path)[-1] + self.filepath = bpy.path.ensure_ext(bpy.data.filepath, ext) + wm = context.window_manager wm.fileselect_add(self) return {'RUNNING_MODAL'} def menu_func(self, context): - ext = '.app' if sys.platform == 'darwin' else os.path.splitext(bpy.app.binary_path)[-1] - default_blend_path = bpy.path.ensure_ext(bpy.data.filepath, ext) - self.layout.operator(SaveAsRuntime.bl_idname, text=SaveAsRuntime.bl_label).filepath = default_blend_path + self.layout.operator(SaveAsRuntime.bl_idname) def register(): -- GitLab