work with init_wine
This commit is contained in:
parent
df97448bdb
commit
9d0d2c8f68
15
config.json
15
config.json
@ -1,7 +1,16 @@
|
||||
{
|
||||
"plugins_ver" : "20",
|
||||
"libs_ver" : "52",
|
||||
"used_wine" : "PROTON_LG",
|
||||
|
||||
"default_wine" : "WINE_LG_10-1",
|
||||
"default_proton" : "PROTON_LG_9-19"
|
||||
"default_proton" : "PROTON_LG_9-19",
|
||||
|
||||
"dxvk_git" : "2.5.3-31",
|
||||
"dxvk_stable" : "1.10.3-28",
|
||||
"dxvk_legacy" : "1.6.1",
|
||||
|
||||
"vkd3d_git" : "1.1-4367",
|
||||
"vkd3d_stable" : "1.1-2602",
|
||||
|
||||
"plugins_ver" : "20",
|
||||
"libs_ver" : "52"
|
||||
}
|
||||
|
@ -2,17 +2,21 @@ 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 print_env_var(*var_name):
|
||||
for v in var_name:
|
||||
if v in os.environ:
|
||||
value = os.environ[v]
|
||||
log.info(f"Переменная {v}={value}")
|
||||
else:
|
||||
log.warning(f"Переменная {v} не определена")
|
||||
|
||||
def set_env_var(var_name, default_value):
|
||||
def set_env_var_if_none(var_name, default_value):
|
||||
if var_name not in os.environ or not os.environ[var_name]:
|
||||
os.environ[var_name] = default_value
|
||||
|
||||
def set_env_var_force(var_name, value):
|
||||
os.environ[var_name] = value
|
||||
|
||||
def get_env_var(var_name):
|
||||
if var_name in os.environ and os.environ[var_name]:
|
||||
return os.environ[var_name]
|
||||
@ -39,11 +43,15 @@ def env_var(var_name, value):
|
||||
match var_name:
|
||||
case "WINEDLLOVERRIDES":
|
||||
add_to_env_var("WINEDLLOVERRIDES", ";", value)
|
||||
case "WINEDLLPATH":
|
||||
add_to_env_var("WINEDLLPATH", ":", 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 "VK_INSTANCE_LAYERS":
|
||||
add_to_env_var("VK_INSTANCE_LAYERS", ":", value)
|
||||
case "LD_LIBRARY_PATH":
|
||||
add_to_env_var("LD_LIBRARY_PATH", ":", value)
|
||||
case "PATH":
|
||||
add_to_env_var("PATH", ":", value)
|
||||
|
@ -1,20 +1,56 @@
|
||||
import os
|
||||
|
||||
from .log import *
|
||||
from .env_var import *
|
||||
from .files_worker import *
|
||||
from .config_parser import *
|
||||
|
||||
def init_wine(dist_path):
|
||||
used_wine_upper = var("used_wine").upper()
|
||||
|
||||
# TODO: будем переименовывать все каталоги wine в верхний регистр?
|
||||
|
||||
if used_wine_upper != "SYSTEM":
|
||||
if used_wine_upper == "WINE_LG":
|
||||
used_wine = var("default_wine")
|
||||
elif used_wine_upper == "PROTON_LG":
|
||||
used_wine = var("default_proton")
|
||||
|
||||
log.info(f"used wine: {used_wine}")
|
||||
wine_path = dist_path + "/" + used_wine
|
||||
log.info(wine_path)
|
||||
|
||||
|
||||
if not os.path.exists(wine_path + "/bin/wine"):
|
||||
# TODO: если нет wine то качаем и распаковываем
|
||||
log.warning(f"{used_wine} not found. Try download...")
|
||||
|
||||
if not os.path.exists(wine_path + "/bin/wine"):
|
||||
log.critical(f"{used_wine} not found. Interrupt!")
|
||||
|
||||
env_var("PATH", wine_path + "/bin")
|
||||
env_var("LD_LIBRARY_PATH", wine_path + "/lib")
|
||||
set_env_var_force("WINEDLLPATH", wine_path + "/lib/wine")
|
||||
if os.path.exists(wine_path + "/lib64/"):
|
||||
env_var("LD_LIBRARY_PATH", wine_path + "/lib64")
|
||||
env_var("WINEDLLPATH", wine_path + "/lib64/wine")
|
||||
|
||||
wine_share = wine_path + "/share"
|
||||
if os.path.exists(wine_share + "/espeak-ng-data/"):
|
||||
set_env_var_force("ESPEAK_DATA_PATH", wine_share)
|
||||
if os.path.exists(wine_share + "/media/"):
|
||||
set_env_var_force("MEDIACONV_BLANK_VIDEO_FILE", wine_share + "/media/blank.mkv")
|
||||
set_env_var_force("MEDIACONV_BLANK_AUDIO_FILE", wine_share + "/media/blank.ptna")
|
||||
|
||||
# TODO: mono, gecko
|
||||
|
||||
else:
|
||||
# TODO: добавить системный вайн
|
||||
...
|
||||
# TODO: добавить проверку системного вайна
|
||||
wine_path = "/usr"
|
||||
|
||||
# общие переменные окружения для любой версии wine
|
||||
set_env_var_force("WINE", wine_path + "/bin/wine")
|
||||
set_env_var_force("WINELOADER", wine_path + "/bin/wine")
|
||||
set_env_var_force("WINESERVER", wine_path + "/bin/wineserver")
|
||||
|
||||
log.info(f"wine in used: {used_wine}")
|
||||
print_env_var("WINELOADER", "WINESERVER", "WINEDLLPATH")
|
||||
print_env_var("PATH", "LD_LIBRARY_PATH")
|
||||
# print_env_var("ESPEAK_DATA_PATH", "MEDIACONV_BLANK_VIDEO_FILE", "MEDIACONV_BLANK_AUDIO_FILE")
|
||||
|
@ -24,6 +24,9 @@ libs_path = data_path + "/libs_v" + var("libs_ver")
|
||||
|
||||
create_new_dir(dist_path, tmp_path, img_path, vulkan_path)
|
||||
|
||||
log.info(f"рабочий каталог: {work_path}")
|
||||
log.info(f"принятые аргументы: {sys.argv[1:]}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
# TODO: реализовать все функции get_* в модуль downloader.py:
|
||||
|
||||
@ -48,7 +51,4 @@ if __name__ == "__main__":
|
||||
# версия контейнера будет захардкожена, парсить ничего не надо
|
||||
get_libs(libs_ver)
|
||||
|
||||
log.info(work_path)
|
||||
log.info(sys.argv[1:])
|
||||
|
||||
init_wine(dist_path)
|
||||
|
Loading…
Reference in New Issue
Block a user