[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2067] trunk/py/scripts/addons/ game_engine_save_as_runtime.py: fix for copying python files when python is not found (prints a warning).

Campbell Barton ideasman42 at gmail.com
Mon Jun 27 08:14:35 CEST 2011


Revision: 2067
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2067
Author:   campbellbarton
Date:     2011-06-27 06:14:35 +0000 (Mon, 27 Jun 2011)
Log Message:
-----------
fix for copying python files when python is not found (prints a warning).
initialize the filepath in the invoke function rather then the menu.

Modified Paths:
--------------
    trunk/py/scripts/addons/game_engine_save_as_runtime.py

Modified: trunk/py/scripts/addons/game_engine_save_as_runtime.py
===================================================================
--- trunk/py/scripts/addons/game_engine_save_as_runtime.py	2011-06-27 06:03:23 UTC (rev 2066)
+++ trunk/py/scripts/addons/game_engine_save_as_runtime.py	2011-06-27 06:14:35 UTC (rev 2067)
@@ -135,13 +135,16 @@
         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 @@
                     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():



More information about the Bf-extensions-cvs mailing list