diff --git a/modules/files_worker.py b/modules/files_worker.py index a97eef4..cdf74c7 100755 --- a/modules/files_worker.py +++ b/modules/files_worker.py @@ -41,12 +41,13 @@ def try_remove_file(path): except Exception as e: log.error(f"failed to remove file: {e}") -def create_new_dir(path): - if not os.path.exists(path): - try: - os.makedirs(path) - except Exception as e: - log.error(f"failed to create directory: {e}") +def create_new_dir(*path): + for i in path: + if not os.path.exists(i): + try: + os.makedirs(i) + except Exception as e: + log.error(f"failed to create directory: {e}") def try_force_link_dir(path, link): if not os.path.exists(path): diff --git a/portproton.py b/portproton.py index abf7c36..7890b4e 100755 --- a/portproton.py +++ b/portproton.py @@ -6,6 +6,11 @@ from modules.env_var import * from modules.files_worker import * from modules.downloader import * +# переменные которые вынесем в отельный файл, аля var +plugins_ver = "20" +libs_ver = "52" +# конец, аля var + work_path = get_env_var("USER_WORK_PATH") data_path = work_path + "/data" @@ -14,18 +19,35 @@ dist_path = data_path + "/dist" tmp_path = data_path + "/tmp" img_path = data_path + "/img" -create_new_dir(dist_path) -create_new_dir(tmp_path) -create_new_dir(img_path) +vulkan_path = data_path + "/vulkan" +plugins_path = data_path + "/plugins_v" + plugins_ver +libs_path = data_path + "/libs_v" + libs_ver + +create_new_dir(dist_path, tmp_path, img_path, vulkan_path) if __name__ == "__main__": + # TODO: реализовать все функции get_* в модуль downloader.py: if len(sys.argv) > 1: # Проверяем, что есть хотя бы один аргумент (кроме имени скрипта) match sys.argv[1]: # Игнорируем первый аргумент (имя скрипта) - case "--get-wine": - # get_wine(sys.argv[2:]) - ... + case "--get-wine": + # без аргументов сохраняем список доступных в tmp_path/get_wine.tmp и выводим в терминал + # если есть аргумент (например WINE_LG_10-1) то обновляем и парсим tmp_path/get_wine.tmp с последующим скачиванием + get_wine(sys.argv[2:]) + case "--get-dxvk": + # без аргументов сохраняем список доступных в tmp_path/get_dxvk.tmp и выводим в терминал + # если есть аргумент (например 2.5.3-31) то обновляем и парсим tmp_path/get_dxvk.tmp с последующим скачиванием + get_dxvk(sys.argv[2:]) + case "--get-vkd3d": + # без аргументов сохраняем список доступных в tmp_path/get_dxvk.tmp и выводим в терминал + # если есть аргумент (например 1.1-4367) то обновляем и парсим tmp_path/get_dxvk.tmp с последующим скачиванием + get_vkd3d(sys.argv[2:]) + case "--get-plugins": + # версия плагинов будет захардкожена, парсить ничего не надо + get_plugins(plugins_ver) + case "--get-libs": + # версия контейнера будет захардкожена, парсить ничего не надо + get_libs(libs_ver) log.info(work_path) - log.info(sys.argv[1:])