50 lines
1.8 KiB
Python
Executable File
50 lines
1.8 KiB
Python
Executable File
import os
|
|
from .log import *
|
|
|
|
# функции обработки переменных LINUX окружения
|
|
def print_env_var(var_name):
|
|
if var_name in os.environ:
|
|
value = os.environ[var_name]
|
|
log.info(f"Переменная {var_name}={value}")
|
|
else:
|
|
log.warning(f"Переменная {var_name} не определена")
|
|
|
|
def set_env_var(var_name, default_value):
|
|
if var_name not in os.environ or not os.environ[var_name]:
|
|
os.environ[var_name] = default_value
|
|
|
|
def get_env_var(var_name):
|
|
if var_name in os.environ and os.environ[var_name]:
|
|
return os.environ[var_name]
|
|
else:
|
|
log.critical(f"Переменная {var_name} не определена")
|
|
|
|
def add_to_env_var(var_name, separator, value):
|
|
if var_name not in os.environ:
|
|
os.environ[var_name] = value
|
|
else:
|
|
current_value = os.environ.get(var_name)
|
|
s = separator
|
|
if s + value + s not in s + current_value + s:
|
|
new_value = f"{current_value}{separator}{value}"
|
|
os.environ[var_name] = new_value
|
|
|
|
def rm_from_env_var(var_name, separator, value):
|
|
current_value = os.environ.get(var_name)
|
|
if value in current_value.split(separator):
|
|
new_value = separator.join([v for v in current_value.split(separator) if v != value])
|
|
os.environ[var_name] = new_value
|
|
|
|
def env_var(var_name, value):
|
|
match var_name:
|
|
case "WINEDLLOVERRIDES":
|
|
add_to_env_var("WINEDLLOVERRIDES", ";", value)
|
|
case "VKD3D_CONFIG":
|
|
add_to_env_var("VKD3D_CONFIG", ";", value)
|
|
case "RADV_PERFTEST":
|
|
add_to_env_var("RADV_PERFTEST", ";", value)
|
|
case "PW_VK_INSTANCE_LAYERS":
|
|
add_to_env_var("PW_VK_INSTANCE_LAYERS", ":", value)
|
|
case "LD_LIBRARY_PATH":
|
|
add_to_env_var("LD_LIBRARY_PATH", ":", value)
|