mirror of
https://github.com/HorlogeSkynet/archey4
synced 2024-11-25 04:00:10 +01:00
35 lines
1.2 KiB
Python
35 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'
|