]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/samples/ide/activegrid/util/sysutils.py
Merged modifications from the 2.6 branch
[wxWidgets.git] / wxPython / samples / ide / activegrid / util / sysutils.py
diff --git a/wxPython/samples/ide/activegrid/util/sysutils.py b/wxPython/samples/ide/activegrid/util/sysutils.py
new file mode 100644 (file)
index 0000000..eb8bbf0
--- /dev/null
@@ -0,0 +1,87 @@
+#----------------------------------------------------------------------------
+# Name:         sysutils.py
+# Purpose:      System Utilities
+#
+# Author:       Joel Hare
+#
+# Created:      7/28/04
+# CVS-ID:       $Id$
+# Copyright:    (c) 2004-2005 ActiveGrid, Inc.
+# License:      wxWindows License
+#----------------------------------------------------------------------------
+
+import sys
+import os
+
+# this will be set to true in IDE.py when we are running release builds.
+isRelease = False
+
+# Commented out for now.....
+# Required for Unicode support with python
+# Put over here because of py2exe problems
+# Python suggests modifying site.py 
+#if hasattr(sys,"setdefaultencoding"):
+#    sys.setdefaultencoding("UTF-8")
+
+
+MAINMODULE_DIR = "AG_MAINMODULE_DIR"
+IS_RELEASE = "AG_IS_RELEASE"
+def isRelease():
+    return 'true' == (str(os.getenv(IS_RELEASE)).lower())
+    
+def setRelease(value):
+    if value:
+        os.environ[IS_RELEASE]= "TRUE"
+    else:
+        os.environ[IS_RELEASE]= "FALSE"
+
+def isWindows():
+    return os.name == 'nt'
+
+
+def _generateMainModuleDir():
+    mainModuleDir = os.getenv(MAINMODULE_DIR)
+    if mainModuleDir:  # if environment variable set, return it
+        return mainModuleDir
+    
+    # On Mac, the python executable sometimes has a capital "P" so we need to 
+    # lower the string first
+    sysExecLower = sys.executable.lower()
+    if sysExecLower == "/" or sysExecLower.find('python') != -1 or sysExecLower.find('apache') != -1:
+        utilModuleDir = os.path.dirname(__file__)
+        if not os.path.isabs(utilModuleDir):
+            utilModuleDir = os.path.join(os.getcwd(), utilModuleDir)
+        mainModuleDir = os.path.normpath(os.path.join(utilModuleDir, os.path.join(os.path.pardir, os.path.pardir)))
+        if mainModuleDir.endswith('.zip'):
+            mainModuleDir = os.path.dirname(mainModuleDir) # Get rid of library.zip
+    else:
+        mainModuleDir = os.path.dirname(sys.executable)
+        
+    os.environ[MAINMODULE_DIR] = mainModuleDir  # pythonBug: os.putenv doesn't work, set environment variable
+    
+    return mainModuleDir
+
+mainModuleDir = _generateMainModuleDir()
+    
+def _generatePythonExecPath():
+    # On Mac, the python executable sometimes has a capital "P" so we need to 
+    # lower the string first
+    sysExecLower = sys.executable.lower()
+    if sysExecLower.find('python') != -1 or sysExecLower.find('apache') != -1:
+        pythonExecPath = sys.executable
+    else:
+        # this is where py2app puts the Python executable
+        if sys.platform == "darwin":
+            pythonExecPath = os.path.join(os.path.dirname(sys.executable), "../Frameworks/Python.Framework/Versions/2.4/Python/bin")
+        else:
+            pythonExecPath = os.path.join(os.path.dirname(sys.executable), '3rdparty\python2.4\python')
+    return pythonExecPath
+
+pythonExecPath = _generatePythonExecPath()
+
+def getCommandNameForExecPath(execPath):
+    if isWindows():
+        return '"%s"' % execPath
+    return execPath
+