diff options
Diffstat (limited to 'scripts/utilsOsType.py')
-rw-r--r-- | scripts/utilsOsType.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/scripts/utilsOsType.py b/scripts/utilsOsType.py new file mode 100644 index 0000000000000..a2f0563bf8951 --- /dev/null +++ b/scripts/utilsOsType.py @@ -0,0 +1,90 @@ +""" 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. +#-- +if sys.version_info.major >= 3: + from enum import Enum + class EnumOsType(Enum): + Unknown = 0 + Darwin = 1 + FreeBSD = 2 + Linux = 3 + NetBSD = 4 + Windows = 5 +else: + class EnumOsType(object): + values = ["Unknown", + "Darwin", + "FreeBSD", + "Linux", + "NetBSD", + "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__(cls, vName): + return cls.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(cls, 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.startswith("netbsd"): + eOSType = EnumOsType.NetBSD + elif strOS == "win32": + eOSType = EnumOsType.Windows + + return eOSType |