diff options
Diffstat (limited to 'tools/osdetect.py')
-rw-r--r-- | tools/osdetect.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tools/osdetect.py b/tools/osdetect.py new file mode 100644 index 00000000..fea78cc5 --- /dev/null +++ b/tools/osdetect.py @@ -0,0 +1,87 @@ +''' +Created on Aug 2, 2011 +@author: Keith Robertson +''' + +import pprint +import os +import re + +class OSTypes: + """ + Utility class with enumerations for the various OSes to facilitate + OS detection. + """ + JAVA_OS_NAME_KEY='os.name' + + OS_TYPE_LINUX='Linux' + OS_TYPE_LINUX_PAT=re.compile('^%s$' % OS_TYPE_LINUX, re.I) + OS_TYPE_WIN='Windows' + OS_TYPE_WIN_PAT=re.compile('^%s$' % OS_TYPE_WIN, re.I) + OS_TYPE_AIX='AIX' + OS_TYPE_AIX_PAT=re.compile('^%s$' % OS_TYPE_AIX, re.I) + OS_TYPE_MAC='Mac OS' + OS_TYPE_MAC_PAT=re.compile('^%s$' % OS_TYPE_MAC, re.I) + OS_TYPE_390='OS/390' + OS_TYPE_390_PAT=re.compile('^%s$' % OS_TYPE_390, re.I) + OS_TYPE_HPUX='HP-UX' + OS_TYPE_HPUX_PAT=re.compile('^%s$' % OS_TYPE_HPUX, re.I) + +def printProps(): + try: + from java.lang import System + from java.util import Set + from java.util import Iterator + + set = System.getProperties().entrySet() + it = set.iterator() + while it.hasNext(): + me = it.next(); + print "Key (%s) Value(%s)" % (me.getKey(), me.getValue()) + except Exception, e: + print "ERROR: unable to print Java properties %s" % e + + + +def java_detect_os(): + """ + Try to load Java packages. If successful then we know we are running + in JYthon. Use the JRE to determine what type of OS and return the proper + policy. + """ + try: + from java.lang import System + + ostype = System.getProperty(OSTypes.JAVA_OS_NAME_KEY) + if ostype: + if OSTypes.OS_TYPE_LINUX_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_LINUX + # Lots of checks here to determine linux version. + #return proper policy here + elif OSTypes.OS_TYPE_WIN_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_WIN + elif OS_TYPE_AIX_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_AIX + elif OS_TYPE_MAC_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_MAC + elif OS_TYPE_390_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_390 + elif OS_TYPE_HPUX_PAT.match(ostype): + print "Matched %s" % OSTypes.OS_TYPE_HPUX + else: + raise Exception("Unsupported OS type of %s." % ostype) + else: + raise Exception("Unable to get %s from JRE's system properties." % OSTypes.JAVA_OS_NAME_KEY) + except Exception, e: + print "WARN: unable to print Java properties %s" % e + +def native_detect_os(): + print "here" + + + +if __name__ == '__main__': + #printProps() + detectOS() + + pass
\ No newline at end of file |