diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 | 
| commit | 9e6d35490a6542f9c97607f93c2ef8ca8e03cbcc (patch) | |
| tree | dd2a1ddf0476664c2b823409c36cbccd52662ca7 /scripts/utilsOsType.py | |
| parent | 3bd2e91faeb9eeec1aae82c64a3253afff551cfd (diff) | |
Notes
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 000000000000..a2f0563bf895 --- /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 | 
