diff options
Diffstat (limited to 'project/os.py')
-rw-r--r-- | project/os.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/project/os.py b/project/os.py new file mode 100644 index 0000000..86ccaad --- /dev/null +++ b/project/os.py @@ -0,0 +1,36 @@ +# Copyright (c) 2020 Egor Tensin <Egor.Tensin@gmail.com> +# This file is part of the "cmake-common" project. +# For details, see https://github.com/egor-tensin/cmake-common. +# Distributed under the MIT License. + +from enum import Enum +import platform + + +class OS(Enum): + WINDOWS = 'Windows' + LINUX = 'Linux' + CYGWIN = 'Cygwin' + + def __str__(self): + return self.value + + @staticmethod + def current(): + system = platform.system() + if system == 'Windows': + return OS.WINDOWS + if system == 'Linux': + return OS.LINUX + if system.startswith('CYGWIN_NT'): + return OS.CYGWIN + raise NotImplementedError(f'unsupported OS: {system}') + + +def on_windows(): + return OS.current() is OS.WINDOWS + + +def on_linux_like(): + os = OS.current() + return os is OS.LINUX or os is OS.CYGWIN |