From 8f6300c6b87048d3b2fb31ed13fd2322b8bc597f Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 29 May 2025 00:20:39 +0300 Subject: [PATCH] cleaning and translations --- dependencies.sh | 2 +- winehelper | 109 +++++++++++++++--------------------------------- 2 files changed, 34 insertions(+), 77 deletions(-) diff --git a/dependencies.sh b/dependencies.sh index 0aff0d1..c18be66 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -22,7 +22,7 @@ windows приложения. Подробнее по ссылке: https://www. apt-get install {i586-,}{glibc-core,libstdc++6,glibc-pthread,glibc-nss,\ libOSMesa,libnss-mdns,libunixODBC2,ocl-icd,libfreetype,libfontconfig1,\ libgnutls30,libGL,libEGL,xorg-dri-swrast,xorg-dri-intel,xorg-dri-radeon,\ -libvulkan1,libcups} winetricks ca-certificates cups-pdf || fatal "Не удалось установить зависимости." +libvulkan1,libcups} || fatal "Не удалось установить зависимости." apt-get install {i586-,}wine diff --git a/winehelper b/winehelper index fba43d3..d480914 100755 --- a/winehelper +++ b/winehelper @@ -106,19 +106,15 @@ fi ##### ROOT ##### su_run () { - print_info "Для продолжения установки зависимостей введите root пароль..." + print_info "Для продолжения установки введите root пароль..." su - -c "$@" } ##### CHECK DEPENDENCIES ##### -# yad zenity cups-pdf - -if rpm -q {i586-,}{wine,glibc-core,libstdc++6,glibc-pthread,glibc-nss,libOSMesa,\ +if ! rpm -q {i586-,}{wine,glibc-core,libstdc++6,glibc-pthread,glibc-nss,libOSMesa,\ libnss-mdns,libunixODBC2,ocl-icd,libfreetype,libfontconfig1,libgnutls30,libGL,\ -libEGL,xorg-dri-swrast,xorg-dri-intel,xorg-dri-radeon,libvulkan1,libcups} \ -winetricks ca-certificates cups-pdf 1>/dev/null -then : # Зависимости установлены. Пропускаем... -else +libEGL,xorg-dri-swrast,xorg-dri-intel,xorg-dri-radeon,libvulkan1,libcups} 1>/dev/null +then if su_run "$DATA_PATH/dependencies.sh" then print_info "Зависимости успешно установлены. Продолжаем работу $SCRIPT_NAME" else fatal "Не удалось установить зависимости. Работа $SCRIPT_NAME прервана." @@ -153,9 +149,9 @@ try_remove_dir () { } try_copy_file () { - if [[ ! -f "$1" ]] ; then print_info "file $1 not found for copy" && return 1 - elif [[ -z "$2" ]] ; then print_error "no way to copy file $1" && return 1 - elif [[ -L "$2" ]] ; then print_warning "$2 is a file with a symbolic link" + if [[ ! -f "$1" ]] ; then print_info "файла $1 не существует для копирования" && return 1 + elif [[ -z "$2" ]] ; then fatal "нет пути для копирования файла $1" + elif [[ -L "$2" ]] ; then try_remove_file "$2" cp -f "$1" "$2" && return 0 || return 1 else @@ -165,24 +161,24 @@ try_copy_file () { } try_copy_dir () { - if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for copy" - elif [[ -z "$2" ]] ; then print_error "no way to copy directory $1" + if [[ ! -d "$1" ]] ; then print_info "каталога $1 не существует для копирования" + elif [[ -z "$2" ]] ; then fatal "нет пути для копирования каталога $1" else cp -fr "$1" "$2" - [[ "$?" != 0 ]] && print_error "failed to copy directory $1 to $2" || return 0 + [[ "$?" != 0 ]] && print_error "не удалось скопировать каталог $1 в $2" || return 0 fi return 1 } try_force_link_file () { if [[ ! -f "$1" ]] ; then - print_warning "file not found for link: $1" + print_warning "нет файла для создания символьной ссылки: $1" if [[ -f "$2" ]] ; then try_remove_file "$2" - print_warning "removed old link: $2" + print_warning "удаляем символьную ссылку: $2" fi return 1 - elif [[ -z "$2" ]] ; then print_error "no way to link file $1" && return 1 + elif [[ -z "$2" ]] ; then fatal "нет пути для создания символьной ссылки на файл $1" else try_remove_file "$2" ln -s -f -r "$1" "$2" @@ -191,25 +187,12 @@ try_force_link_file () { return 1 } -check_symlink () { - local CHK_SYMLINK_FILE="$(file "$1")" - if [[ -n "$(echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}')" ]] ; then - return 0 - elif [[ -n "$(echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}')" ]] ; then - print_error "remove broken symlink: $CHK_SYMLINK_FILE" - rm -fr "$CHK_SYMLINK_FILE" - return 1 - else - return 1 - fi -} - try_force_link_dir () { - if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for link" - elif [[ -z "$2" ]] ; then print_error "no way to link directory $1" + if [[ ! -d "$1" ]] ; then print_info "каталога $1 не существует для создания символьной сссылки" + elif [[ -z "$2" ]] ; then fatal "не указан путь для создания символьной ссылки на каталог $1" else ln -s -f -r "$1" "$2" - [[ "$?" != 0 ]] && print_error "failed to link directory $1 to $2" || return 0 + [[ "$?" != 0 ]] && print_error "не удалось сделать символьную ссылку на каталог $1 по пути $2" || return 0 fi return 1 } @@ -309,7 +292,6 @@ try_copy_wine_dll_to_pfx_32() { fi } -##### OVERRIDE VARIABLES FUNCTIONS ##### var_winedlloverride_update () { if [[ -n "${WINEDLLOVERRIDES}" ]] then export WINEDLLOVERRIDES="${1};${WINEDLLOVERRIDES}" @@ -355,7 +337,6 @@ var_ld_library_path_update () { return 0 } -##### CREATE DESKTOP FILE ##### create_desktop () { local name_desktop="$1" local exe_file="$2" @@ -382,11 +363,9 @@ create_desktop () { fi fi - create_new_dir "$WH_MENU_DIR" - - [[ ! -f "$icon_file" ]] && icon_file=wine - # создаем .desktop файл + create_new_dir "$WH_MENU_DIR" + [[ ! -f "$icon_file" ]] && icon_file=wine { echo "[Desktop Entry]" echo "Name=$name_desktop" @@ -401,7 +380,6 @@ create_desktop () { cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/" - # добавляем информацию о приложении в "$WINEPREFIX/desktop.list" if [[ -f "$WINEPREFIX/desktop.list" ]] \ && grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list" @@ -470,7 +448,6 @@ EOF fi } -##### REMOVE DESKTOP FILE ##### remove_desktop () { if [[ -n "$1" ]] ; then try_remove_file "$USER_WORK_PATH/$1.desktop" @@ -491,7 +468,6 @@ remove_desktop () { } -##### INSTALLED PROGRAMS ##### check_installed_programs () { for desktop_file in "$USER_WORK_PATH"/*.desktop ; do if [[ ! -f "$desktop_file" ]] ; then @@ -530,7 +506,6 @@ run_installed_programs () { fi } -##### USED WINED3D LIBRARY ##### init_wined3d () { if [[ "$USE_RENDERER" != "proton" ]] ; then WINED3D_FILES="d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi d3d12 d3d12core" @@ -548,7 +523,6 @@ init_wined3d () { fi } -##### CHECK VULKAN LIBRARY ##### init_dxvk () { check_variables USE_DXVK_VER "$1" @@ -616,27 +590,19 @@ init_vkd3d () { done } -##### DOWNLOAD WINE ##### -download_wine () { - if [[ ! -d "$WH_DIST_DIR/$WH_WINE_USE" ]] ; then - WINE_URL="$CLOUD_URL/$WH_WINE_USE.tar.xz" - local WINE_PACKAGE="$WH_TMP_DIR/${WH_WINE_USE}.tar.xz" - if try_download "$WINE_URL" "$WINE_PACKAGE" check256sum ; then - if unpack "$WINE_PACKAGE" "$WH_DIST_DIR/" ; then - echo "$WH_WINE_USE" > "$WH_DIST_DIR/$WH_WINE_USE/version" - try_remove_file "$WINE_PACKAGE" - fi - fi - fi -} - -##### INITIAL WINE SETTINGS ##### init_wine_ver () { if [[ "$WH_WINE_USE" != system* ]] ; then export WINEDIR="$WH_DIST_DIR/$WH_WINE_USE" if [[ ! -d "$WINEDIR" ]] ; then - download_wine + WINE_URL="$CLOUD_URL/$WH_WINE_USE.tar.xz" + local WINE_PACKAGE="$WH_TMP_DIR/${WH_WINE_USE}.tar.xz" + if try_download "$WINE_URL" "$WINE_PACKAGE" check256sum ; then + if unpack "$WINE_PACKAGE" "$WH_DIST_DIR/" ; then + echo "$WH_WINE_USE" > "$WH_DIST_DIR/$WH_WINE_USE/version" + try_remove_file "$WINE_PACKAGE" + fi + fi fi export WINE="${WINEDIR}/bin/wine" @@ -731,9 +697,8 @@ init_wine_ver () { print_info "Используется версия wine: $WH_WINE_USE" } -##### INITIAL WINEPREFIX SETTINGS ##### get_and_set_reg_file () { - + convert_dec_and_hex () { local type=$1 local num=$2 @@ -841,10 +806,6 @@ get_and_set_reg_file () { } wait_wineserver () { -# while [[ -n "$(ls -l /proc/*/exe 2>/dev/null | grep -ie portproton | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ]] ; do -# sleep 1 -# done - "$WINESERVER" -w } @@ -899,7 +860,7 @@ check_prefix_var () { print_info "Выбран префикс: $WINEPREFIX" fi - if echo "$WINEPREFIX" | grep -v '/' ; then + if echo "$WINEPREFIX" | grep -qv '/' ; then export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX" fi @@ -925,8 +886,8 @@ init_wineprefix () { fi print_info "Обновление префикса $WINEPREFIX." if [[ -d "$WINEPREFIX/drive_c/windows" ]] - then env WINEDLLOVERRIDES="winegstreamer=" "$WINELOADER" wineboot -u - else env WINEDLLOVERRIDES="winegstreamer=" "$WINELOADER" wineboot -i + then "$WINELOADER" wineboot -u + else "$WINELOADER" wineboot -i fi touch "$WINEPREFIX/.firstboot" wait_wineserver @@ -939,7 +900,7 @@ init_wineprefix () { && [[ "$WINEARCH" != "win32" ]] then export WH_WINDOWS_VER="xp64" fi - env WINEDLLOVERRIDES="winegstreamer=" "$WINELOADER" winecfg -v $(echo "win${WH_WINDOWS_VER}" | sed 's/.*/\L&/') + "$WINELOADER" winecfg -v $(echo "win${WH_WINDOWS_VER}" | sed 's/.*/\L&/') wait_wineserver print_info "Windows версия изменена на win${WH_WINDOWS_VER}" fi @@ -1035,7 +996,6 @@ init_wineprefix () { done } -##### KILL AUTOSTART AFTER INSTALLING ##### kill_autostart () { [[ -z "${1}" ]] && fatal "Нет аргумента для функции kill_autostart." [[ -z "${2}" ]] && SWAIT=3 || SWAIT="${2}" @@ -1077,7 +1037,7 @@ use_winetricks () { print_info "Пробуем установить компоненты: ${WH_DLL_NEED_INSTALL}" print_info "Запускаем WINETRICKS..." export WINETRICKS_DOWNLOADER="curl" - env WINEDLLOVERRIDES="winegstreamer=" "$WH_WINETRICKS" -q ${WH_DLL_NEED_INSTALL} + "$WH_WINETRICKS" -q ${WH_DLL_NEED_INSTALL} wait_wineserver fi fi @@ -1112,8 +1072,7 @@ init_database () { print_info "Используется файл настроек: $WHDB_FILE" . "$WHDB_FILE" elif check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then - print_info "Найдены настройки из предыдущего использования префикса." - echo "$WINEPREFIX/last.conf" + print_info "Найдены настройки из предыдущего использования префикса: $WINEPREFIX" cat "$WINEPREFIX/last.conf" . "$WINEPREFIX/last.conf" else @@ -1234,7 +1193,6 @@ run_autoinstall () { echo } -##### REMOVE PREFIX ##### remove_prefix() { local prefix_name="$1" local prefix_path="$WH_PREFIXES_DIR/$prefix_name" @@ -1286,7 +1244,6 @@ remove_prefix() { fi } -##### REMOVE WINEHELPER ##### remove_winehelper () { local answer if [[ $1 =~ --force|-y ]] ; then