From a2a63cf1ffc069bfd905d96af67a99e687afb284 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 29 May 2025 14:03:05 +0300 Subject: [PATCH] added hack for cpcsp_proxy_setup --- winehelper | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/winehelper b/winehelper index 41c1579..6dd00bf 100755 --- a/winehelper +++ b/winehelper @@ -12,7 +12,11 @@ print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" print_info () { printf "\E[36m%s Информация: \"$@\" %s\e[0m\n" ;} print_ok () { printf "\E[35m%s Успех: $@ %s\e[0m\n" ;} print_var () { for vp in $@ ; do echo "${vp}=${!vp}" ; done ;} -fatal () { print_error "$@" ; exit 1 ;} +fatal () { + print_error "$@" + [[ -n "$WINESERVER" ]] && "$WINESERVER" -w + exit 1 +} ##### CHECK VARIABLES ##### check_variables () { [[ -z ${!1} ]] && export $1="$2" ;} @@ -977,13 +981,27 @@ init_wineprefix () { else cpcsp_proxy_cmd=("${WINELOADER}64" "cpcsp_proxy_setup.exe") fi - print_info "Запускаем настройку cpcsp_proxy:" - echo "${cpcsp_proxy_cmd[*]}" - if "${cpcsp_proxy_cmd[@]}" - then print_info "Настройка cpcsp_proxy успешно завершена." - else fatal "Ошибка во время настройки cpcsp_proxy." - fi + print_info "Запускаем настройку cpcsp_proxy..." + unset CPCSP_PROXY_OK + set -o pipefail + for ((i=2; i < 6; i++)) ; do + "${cpcsp_proxy_cmd[@]}" | tee "$WINEPREFIX/cpcsp_setup.log" + local CPCSP_EXIT_STATUS="${PIPESTATUS[0]}" + if grep -q "failed to load /opt/cprocsp/" "$WINEPREFIX/cpcsp_setup.log" ; then + fatal "Проверьте правильность установки CryptoPro в системе.\n Инструкция: https://www.altlinux.org/CryptoPro" + fi + + if [[ $CPCSP_EXIT_STATUS == "0" ]] ; then + print_info "Настройка cpcsp_proxy успешно завершена." + CPCSP_PROXY_OK="1" + break + fi + print_warning "Попытка $i из 5..." + wait_wineserver + done wait_wineserver + try_remove_file "$WINEPREFIX/cpcsp_setup.log" + [[ $CPCSP_PROXY_OK != "1" ]] && fatal "Ошибка во время настройки cpcsp_proxy." fi fi