New Features: In Tab-View mode, Ctrl-number will take the user to
    the numbered tab view.  Modified files now show an '*' astrisk in
    the view title.  Debugger framework can now support PHP debugging.
    Not important for python development, but at least that means the
    debugger framework is more generalized.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
	
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #----------------------------------------------------------------------------
 | |
| # 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
 | |
| import time
 | |
| 
 | |
| # 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"
 | |
| IS_COMMERCIAL = "AG_IS_COMMERCIAL"
 | |
| AG_SYSTEM_START_TIME_ENV_NAME = "AG_SYSTEM_START_TIME"
 | |
| 
 | |
| def isCommercial():
 | |
|     
 | |
|     return os.path.exists(os.path.join(mainModuleDir,"commercial.txt")) or 'true' == (str(os.getenv(IS_COMMERCIAL)).lower())
 | |
|  
 | |
| 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'
 | |
| 
 | |
| __isServer = False
 | |
| 
 | |
| def setServerMode(isServer):
 | |
|     global __isServer
 | |
|     __isServer = isServer
 | |
|     
 | |
| def isServer():
 | |
|     global __isServer
 | |
|     return __isServer
 | |
|     
 | |
| 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
 | |
| 
 | |
| def getUserName():
 | |
|     if isWindows():
 | |
|         return os.getenv('USERNAME')
 | |
|     else:
 | |
|         # 06-Feb-06 stoens@activegrid.com --
 | |
|         # this blows up the linux cc runs with "Inappropriate ioctl for device"
 | |
|         #return os.getlogin()
 | |
|         return os.getenv('USER')        
 | |
| 
 | |
| def getCurrentTimeAsFloat():
 | |
|     return time.time()
 | |
| 
 | |
| systemStartTime = getCurrentTimeAsFloat()
 |