| """ Utility module to determine the OS Python running on |
| |
| -------------------------------------------------------------------------- |
| File: utilsOsType.py |
| |
| Overview: Python module to supply functions and an enumeration to |
| help determine the platform type, bit size and OS currently |
| being used. |
| -------------------------------------------------------------------------- |
| |
| """ |
| |
| # Python modules: |
| import sys # Provide system information |
| |
| # Third party modules: |
| |
| # In-house modules: |
| |
| # Instantiations: |
| |
| # Enumerations: |
| #----------------------------------------------------------------------------- |
| # Details: Class to implement a 'C' style enumeration type. |
| # Gotchas: None. |
| # Authors: Illya Rudkin 28/11/2013. |
| # Changes: None. |
| #-- |
| class EnumOsType( object ): |
| values = [ "Unknown", |
| "Darwin", |
| "FreeBSD", |
| "Linux", |
| "Windows" ] |
| class __metaclass__( type ): |
| #++--------------------------------------------------------------------------- |
| # Details: Fn acts as an enumeration. |
| # Args: vName - (R) Enumeration to match. |
| # Returns: Int - Matching enumeration/index. |
| # Throws: None. |
| #-- |
| def __getattr__( self, vName ): |
| return self.values.index( vName ); |
| |
| #++--------------------------------------------------------------------------- |
| # Details: Reverse fast lookup of the values list. |
| # Args: vI - (R) Index / enumeration. |
| # Returns: Str - text description matching enumeration. |
| # Throws: None. |
| #-- |
| def name_of( self, vI ): |
| return EnumOsType.values[ vI ]; |
| |
| #----------------------------------------------------------------------------- |
| #----------------------------------------------------------------------------- |
| #----------------------------------------------------------------------------- |
| |
| #++--------------------------------------------------------------------------- |
| # Details: Determine what operating system is currently running on. |
| # Args: None. |
| # Returns: EnumOsType - The OS type being used ATM. |
| # Throws: None. |
| #-- |
| def determine_os_type(): |
| eOSType = EnumOsType.Unknown; |
| |
| strOS = sys.platform |
| if strOS == "darwin": |
| eOSType = EnumOsType.Darwin |
| elif (strOS.startswith("freebsd")): |
| eOSType = EnumOsType.FreeBSD |
| elif (strOS.startswith("linux")): |
| eOSType = EnumOsType.Linux |
| elif strOS == "win32": |
| eOSType = EnumOsType.Windows |
| |
| return eOSType; |