mirror of
https://github.com/HorlogeSkynet/archey4
synced 2024-11-24 16:00:09 +01:00
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""
|
|
Simple class (acting as a singleton) dealing with environment variables.
|
|
Variables that should alter Archey _global_ behavior may be DRY-ed here.
|
|
"""
|
|
|
|
import os
|
|
import platform
|
|
|
|
from archey.singleton import Singleton
|
|
|
|
|
|
class Environment(metaclass=Singleton):
|
|
"""
|
|
At startup, instantiate this class and set up some attributes
|
|
according to their respective environment variable value.
|
|
"""
|
|
|
|
# See <https://no-color.org/>.
|
|
NO_COLOR = "NO_COLOR" in os.environ
|
|
|
|
# See <https://bixense.com/clicolors/>.
|
|
CLICOLOR = os.getenv("CLICOLOR") != "0"
|
|
CLICOLOR_FORCE = os.getenv("CLICOLOR_FORCE", "0") != "0"
|
|
|
|
# See <https://consoledonottrack.com/>.
|
|
DO_NOT_TRACK = os.getenv("DO_NOT_TRACK") == "1"
|
|
|
|
def __init__(self):
|
|
if platform.system() == "Darwin":
|
|
# Makes future `platform.mac_ver` calls not being _trolled_ by Darwin's kernel
|
|
# when opening `/System/Library/CoreServices/SystemVersion.plist` file.
|
|
# "Fortunately" for us, `platform` module does not cache these very results.
|
|
# See `platform._mac_ver_xml` function and
|
|
# <https://eclecticlight.co/2020/08/13/macos-version-numbering-isnt-so-simple/>.
|
|
os.environ["SYSTEM_VERSION_COMPAT"] = "0"
|