forked from CastroFidel/PortProton_2.0
added modules
This commit is contained in:
43
modules/env_var.py
Executable file
43
modules/env_var.py
Executable file
@ -0,0 +1,43 @@
|
||||
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 check_and_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 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)
|
Reference in New Issue
Block a user