Compare commits
	
		
			111 Commits
		
	
	
		
			0.5.1
			...
			151b6d6e30
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 151b6d6e30 | ||
|  | c8049efd37 | ||
|  | 8eb5a0aa86 | ||
|  | 7edc205b66 | ||
|  | b36cadd54d | ||
|  | 48d870979f | ||
|  | cbe535b878 | ||
|  | fd3442888d | ||
|  | 7321542477 | ||
|  | 477f44a11e | ||
|  | 4f9821450a | ||
|  | f858746064 | ||
|  | 1123c018eb | ||
|  | 998eff3263 | ||
|  | 4aebb722ca | ||
|  | 4672dcd4e1 | ||
|  | e174b034df | ||
|  | 3100475b1e | ||
|  | 148a7dbfce | ||
|  | 5c01220382 | ||
|  | b74fe77bad | ||
|  | 3a442f6288 | ||
|  | 20030d43e4 | ||
|  | b44849661d | ||
|  | 4c39ec3c8e | ||
|  | 8950d8de2f | ||
|  | 85bd5fdf5d | ||
|  | b98c6e5408 | ||
|  | bab49377a3 | ||
|  | aa591112ff | ||
|  | 08090bbb6b | ||
|  | 759421d725 | ||
|  | bf3a30487e | ||
|  | 13efa924d8 | ||
|  | 721fd5e76e | ||
|  | 7f3f330fc4 | ||
|  | 1e19fa3c56 | ||
|  | a57df9a259 | ||
|  | 3f22b3540e | ||
|  | 861b6743fd | ||
|  | aa267ad9ef | ||
|  | 3e91bcf241 | ||
|  | 5571f74125 | ||
|  | a15b2621b6 | ||
|  | fd00b61c71 | ||
|  | 74eaf34c00 | ||
|  | a69493df73 | ||
|  | 6b958dd7f1 | ||
|  | 2483f4c66c | ||
|  | ab0e23952e | ||
|  | 92a682ba8a | ||
|  | 3381054c21 | ||
|  | 76b7d4f046 | ||
|  | aeae544640 | ||
|  | eeb94523b3 | ||
|  | a2186b63cb | ||
|  | 839b480c39 | ||
|  | 504be8ea5b | ||
|  | 662a62267c | ||
|  | 83fe362b37 | ||
|  | f7fdfca743 | ||
|  | ffc7098aba | ||
|  | 50de9bdb14 | ||
|  | b4d663f2a7 | ||
|  | c5db176ca4 | ||
|  | d73c0a47ab | ||
|  | aadd579cdc | ||
|  | 0608a3f250 | ||
|  | 274a21941d | ||
|  | d499147bdc | ||
|  | dd5d8bb657 | ||
|  | f73f717d0e | ||
|  | cefb3c8d5a | ||
|  | a4f01e7340 | ||
|  | 70f2976a70 | ||
|  | 34713bb61a | ||
|  | eea04f0d91 | ||
|  | 45bc97d796 | ||
|  | 88f1febf54 | ||
|  | c756459993 | ||
|  | b97b2169ab | ||
|  | 6b8909902c | ||
|  | 3bfdf5c01a | ||
|  | 4e1c3e787d | ||
|  | c1e58bb8a1 | ||
|  | 658816a84d | ||
|  | 3e13cdf8f0 | ||
|  | 95dd7ae598 | ||
|  | 16b9a84191 | ||
|  | ddea68c11c | ||
|  | a27832329d | ||
|  | 159fc26eca | ||
|  | 2666ee33ad | ||
|  | 100ffa22ba | ||
|  | e766b4dba2 | ||
|  | bad7e5780a | ||
|  | 7fbe9ba31b | ||
|  | 377b9e9059 | ||
|  | a815fa1c20 | ||
|  | 63f301d2de | ||
|  | 213035d868 | ||
|  | 65bd514a1a | ||
|  | 8912134827 | ||
|  | cb3fdc62dc | ||
|  | 9611cc52fc | ||
|  | 5cdc4a8f4f | ||
|  | 32fa7f6278 | ||
|  | b44fcdb63e | ||
|  | 3e2ed1cff5 | ||
|  | a18c4684a7 | ||
|  | 0cca7b441d | 
							
								
								
									
										16
									
								
								CHANGELOG
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CHANGELOG
									
									
									
									
									
								
							| @@ -1,5 +1,21 @@ | ||||
| История изменений: | ||||
|  | ||||
| 0.5.4: | ||||
| * обновлен графический режим Qt5: | ||||
|     - добавлена возможность установки системных зависимостей | ||||
|     - исправлены/улучшены основные функции | ||||
|     - добавлено управление префиксами (в разработке) | ||||
|     - добавлена возможность создания ярлыка | ||||
| * добавлено автоматическое создание иконки для ярлыков (desktop файлов) | ||||
| * префикс tflex17 переименован в tflex (т.к. 18-я версия работает в том же префиксе) | ||||
|  | ||||
| 0.5.3: | ||||
| * исправлена установка grdcontrol для t-flex-* | ||||
| * обновлен графический режим Qt5 | ||||
|  | ||||
| 0.5.2: | ||||
| * исправлен запуск winehelper.desktop для winehelper-qt | ||||
|  | ||||
| 0.5.1: | ||||
| * добавлена функция извлечения иконки из .exe файлов | ||||
| * добавлен вывод истории изменений командой: winehelper --changelog | ||||
|   | ||||
							
								
								
									
										14
									
								
								LICENSE_AGREEMENT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								LICENSE_AGREEMENT
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| Отказ от ответственности: | ||||
|  | ||||
| Некоторые компоненты, устанавливаемые в префикс и необходимые для запуска | ||||
| приложений, могут быть защищены авторским правом или лицензионными | ||||
| соглашениями. Вы обязаны самостоятельно убедиться в законности использования | ||||
| этих компонентов в вашей юрисдикции. | ||||
|  | ||||
| Мы не несём ответственности за нарушение лицензионных соглашений, связанное с | ||||
| использованием подготовленного префикса, а также за программное обеспечение, | ||||
| полученное из сторонних источников. | ||||
|  | ||||
| Продолжая установку, вы подтверждаете, что ознакомились с данным отказом от | ||||
| ответственности и принимаете все риски, связанные с использованием программного | ||||
| обеспечения. | ||||
| @@ -4,7 +4,7 @@ _winehelper_completions() { | ||||
|     COMPREPLY=() | ||||
|     cur="${COMP_WORDS[COMP_CWORD]}" | ||||
|     prev="${COMP_WORDS[COMP_CWORD-1]}" | ||||
|     opts="--help --version --debug install installed -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix --changelog changelog" | ||||
|     opts="--help --version --debug install installed install-dxvk install-vkd3d -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix create-prefix --changelog changelog change-wine" | ||||
|     wine_cmd="winecfg winereg winefile wineconsole winetricks desktop regedit explorer cmd run" | ||||
|  | ||||
|     case "${prev}" in | ||||
| @@ -34,6 +34,20 @@ _winehelper_completions() { | ||||
|         restore-prefix) | ||||
|             return 0 | ||||
|             ;; | ||||
|         install-dxvk|install-vkd3d) | ||||
|             local versions=$(winehelper "${prev}" list 2>/dev/null | grep ' - ' | sed 's/ - //') | ||||
|             COMPREPLY=( $(compgen -W "${versions} none list" -- "${cur}") ) | ||||
|             return 0 | ||||
|             ;; | ||||
|         change-wine) | ||||
|             local wine_versions=$(awk ' | ||||
|                 /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/ { in_group=1 } | ||||
|                 /^#+/ { if (! ($0 ~ /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/)) in_group=0 } | ||||
|                 /^[a-f0-9]{64}/ && in_group { sub(/\.tar\.xz$/, "", $2); print $2 } | ||||
|             ' /usr/share/winehelper/sha256sum.list 2>/dev/null) | ||||
|             COMPREPLY=( $(compgen -W "system ${wine_versions}" -- "${cur}") ) | ||||
|             return 0 | ||||
|             ;; | ||||
|         *) | ||||
|             ;; | ||||
|     esac | ||||
|   | ||||
| @@ -8,15 +8,19 @@ _winehelper() { | ||||
|     '--version[Показать информацию о пакете и его версии]' | ||||
|     '--debug[Режим отладки]' | ||||
|     'install[Запустить скрипт установки программы]' | ||||
|     'install-dxvk[Установить/удалить DXVK]' | ||||
|     'install-vkd3d[Установить/удалить VKD3D]' | ||||
|     'installed[Список установленных программ]' | ||||
|     '-r[Запуск программы (отладка)]' | ||||
|     '-i[Запустить скрипт установки программы]' | ||||
|     'remove-all[Удалить WineHelper и все связанные данные]' | ||||
|     '--clear-pfx[Очистить префикс \[имя_префикса\]]' | ||||
|     'killall[Убить все процессы]' | ||||
|     'create-prefix[Создать новый префикс]' | ||||
|     'remove-prefix[Удалить префикс и все связанные данные]' | ||||
|     'backup-prefix[Создать резерную копию префикса]' | ||||
|     'restore-prefix[восстановить префикс из резервной копии "путь/до/whpack"]' | ||||
|     'change-wine[Изменить версию Wine/Proton для префикса]' | ||||
|   ) | ||||
|  | ||||
|   wine_cmd=( | ||||
| @@ -55,9 +59,20 @@ _winehelper() { | ||||
|         remove-prefix|backup-prefix) | ||||
|           _get_prefixes | ||||
|           ;; | ||||
|         create-prefix) | ||||
|           ;; | ||||
|         restore-prefix) | ||||
|           _files | ||||
|           ;; | ||||
|         install-dxvk) | ||||
|           _get_component_versions 'install-dxvk' | ||||
|           ;; | ||||
|         install-vkd3d) | ||||
|           _get_component_versions 'install-vkd3d' | ||||
|           ;; | ||||
|         change-wine) | ||||
|           _get_wine_versions | ||||
|           ;; | ||||
|         *) | ||||
|           _values 'winehelper options' "${opts[@]}" "${wine_cmd[@]}" | ||||
|           ;; | ||||
| @@ -66,6 +81,32 @@ _winehelper() { | ||||
|   esac | ||||
| } | ||||
|  | ||||
| _get_component_versions () { | ||||
|   local component_command=$1 | ||||
|   local -a versions | ||||
|  | ||||
|   versions=( ${(f)"$(winehelper "${component_command}" list 2>/dev/null | grep ' - ' | sed 's/ - //')" } ) | ||||
|   versions+=(none list) | ||||
|  | ||||
|   _values 'versions' "${versions[@]}" | ||||
| } | ||||
|  | ||||
| _get_wine_versions () { | ||||
|   local -a versions | ||||
|   local sha256_file="/usr/share/winehelper/sha256sum.list" | ||||
|  | ||||
|   if [[ -f "$sha256_file" ]]; then | ||||
|     versions=( ${(f)"$(awk ' | ||||
|         /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/ { in_group=1 } | ||||
|         /^#+/ { if (! ($0 ~ /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/)) in_group=0 } | ||||
|         /^[a-f0-9]{64}/ && in_group { sub(/\.tar\.xz$/, "", $2); print $2 } | ||||
|     ' "$sha256_file" 2>/dev/null)"} ) | ||||
|   fi | ||||
|  | ||||
|   versions+=(system) | ||||
|   _values 'wine/proton versions' "${versions[@]}" | ||||
| } | ||||
|  | ||||
| _get_prefixes () { | ||||
|   prefixes=( ${(f)"$(ls -1 ~/.local/share/winehelper/prefixes 2>/dev/null)"} ) | ||||
|  | ||||
|   | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-att
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-att
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ АТТЕСТАТ” для документов об основном общем, среднем общем образовании. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-4" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ АТТЕСТАТ" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-dpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-dpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ ДПП” для заполнения бланков документов о повышении квалификации и профессиональной переподготовке. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ ДПП" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										35
									
								
								autoinstall/arm-kt-es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								autoinstall/arm-kt-es
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ НШ” для заполнения бланков документов об окончании начальной школы. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-1" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ НШ" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.exe" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_EXE" ; then | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-med
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-med
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ МЕД” для заполнения бланков документов о послевузовском профессиональном образовании и сертификатов специалиста. | ||||
| ###################################################### | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-3" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ МЕД" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-prof
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-prof
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ ПРОФЕССИЯ” для заполнения бланков документов профессионального обучения. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-5" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ ПРОФЕССИЯ" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-spo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-spo
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ СПО” для заполнения бланков документов о среднем профессиональном образовании. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-2" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ СПО" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
							
								
								
									
										39
									
								
								autoinstall/arm-kt-vuz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								autoinstall/arm-kt-vuz
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Программа “АРМ КТ ПРОФ ВУЗ” для заполнения бланков документов о высшем образовании. | ||||
| ######################################################################## | ||||
| export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-6" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="arm-kt" | ||||
| export PROG_NAME="АРМ КТ ПРОФ ВУЗ" | ||||
| export PROG_ICON="armkt" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="7" | ||||
|  | ||||
| AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}') | ||||
| SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}') | ||||
| VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') | ||||
| AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe" | ||||
|  | ||||
| if [[ -z $VER_EXE ]] | ||||
| then fatal "Не удалось получить версию ПО со страницы на сайте!" | ||||
| else print_info "Устанавливаем $PROG_NAME версии $VER_EXE" | ||||
| fi | ||||
|  | ||||
| prepair_wine | ||||
|  | ||||
| if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then | ||||
|     unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}" | ||||
|     try_remove_file "$AUTOINSTALL_ZIP" | ||||
|  | ||||
|     wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT | ||||
|     try_remove_file "${AUTOINSTALL_EXE}" | ||||
|  | ||||
|     create_desktop "$PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON" | ||||
|  | ||||
|     create_desktop "Регистрация $PROG_NAME" \ | ||||
|     "$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON" | ||||
| fi | ||||
| @@ -6,10 +6,10 @@ export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="scadoffice" | ||||
| export PROG_NAME="SCAD Office" | ||||
| export PROG_ICON="scadoffice" | ||||
| export BASE_PFX="scadaoffice_pfx_x64_v03" | ||||
| export BASE_PFX="scadaoffice_pfx_x64_v04" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="dotnet20 dotnet472 dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6" | ||||
| export INSTALL_DLL="dotnet20 dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6" | ||||
| export WH_XDG_OPEN="rtf" | ||||
| AUTOINSTALL_EXE="${WH_TMP_DIR}/SCADOffice_installer.exe" | ||||
| SCADOFFICE_ADDONS_URL="https://cloud.linux-gaming.ru/portproton/scadoffice_addons_v02.tar.xz" | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINDOWS_VER="10" | ||||
| export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINDOWS_VER="10" | ||||
| export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
| @@ -5,7 +5,7 @@ export WH_WINDOWS_VER="10" | ||||
| export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export PROG_VERSION="" | ||||
| export WH_XDG_OPEN="log" | ||||
| export INSTALL_DLL="corefonts d3dcompiler_47 dotnet48 vcrun2022 ucrtbase2019 msxml6 fontsmooth=rgb baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei" | ||||
| @@ -28,8 +28,8 @@ prepair_wine | ||||
|  | ||||
| if [[ -d "$WINEPREFIX" ]] \ | ||||
| && grep -q "t-flex-cad" "$WINEPREFIX/winetricks.log" \ | ||||
| && systemctl list-units --type service --state running | grep aksusbd \ | ||||
| && systemctl list-units --type service --state running | grep hasplmd \ | ||||
| && systemctl list-units --type service --state running | grep -q aksusbd \ | ||||
| && systemctl list-units --type service --state running | grep -q hasplmd \ | ||||
| && rpm -q grdcontrol | grep -q "$GRDCONTROL_VER" | ||||
| then | ||||
|     print_info "Префикс $PREFIX_NAME готов к установке ПО." | ||||
| @@ -50,7 +50,7 @@ else | ||||
|  | ||||
|         if rpm -q grdcontrol | grep -q "$GRDCONTROL_VER" | ||||
|         then print_info "grdcontrol-$GRDCONTROL_VER уже установлен в системе." | ||||
|         else su_run rpm -iv "$AUTOINSTALL_DIR_LIN/Guardant_Linux/grdcontrol.x86_64.rpm" | ||||
|         else su_run "rpm -iv \"$AUTOINSTALL_DIR_LIN/Guardant_Linux/grdcontrol.x86_64.rpm\"" | ||||
|         fi | ||||
|  | ||||
|         if [[ "$BASE_PFX" == "none" ]] ; then | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								image/armkt.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								image/armkt.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 23 KiB | 
							
								
								
									
										
											BIN
										
									
								
								image/nettest_client.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								image/nettest_client.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								image/nettest_server.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								image/nettest_server.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 4.7 KiB | 
							
								
								
									
										34
									
								
								manualinstall/nettest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								manualinstall/nettest
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| #!/usr/bin/env bash | ||||
| # info_ru: Установщик программного комплекса NetTest (демо-версия) | ||||
| ######################################################################## | ||||
| export PROG_URL="https://www.kpolyakov.spb.ru/prog/nettest/nettget.htm" | ||||
| export WH_WINE_USE="wine_x_tkg_10-0_amd64" | ||||
| export WINEPREFIX="nettest" | ||||
| export PROG_NAME="NetTest" | ||||
| export PROG_ICON="nettest" | ||||
| export BASE_PFX="none" | ||||
| export WINEARCH="win64" | ||||
| export INSTALL_DLL="" | ||||
| export WH_WINDOWS_VER="10" | ||||
|  | ||||
| ZIP_FILE="$2" | ||||
|  | ||||
| if [[ -f "$ZIP_FILE" ]] \ | ||||
| && [[ $ZIP_FILE =~ ".zip" ]] | ||||
| then | ||||
|     prepair_wine | ||||
|     PROG_PATH="$DRIVE_C/nettest" | ||||
|     unpack "$2" "$PROG_PATH" | ||||
|  | ||||
|     cp -fr "$PROG_PATH/fonts/"* "$DRIVE_C/windows/Fonts/" | ||||
|  | ||||
|     create_desktop "$PROG_NAME (Сервер)" "$PROG_PATH/testser.exe" "nettest_server" | ||||
|     create_desktop "$PROG_NAME (Клиент)" "$PROG_PATH/testcli.exe" "nettest_client" | ||||
| else | ||||
|     fatal "Не найден файл архива для $PROG_NAME. Перезапустите по примеру: | ||||
|     winehelper install $1 \"/путь/до/архива\"" | ||||
| fi | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -7,7 +7,7 @@ export WH_WINE_USE="wine_wh_tflex_10-9_amd64" | ||||
| export BASE_PFX="tflex17_pfx_x64_v02" | ||||
| export WINEARCH="win64" | ||||
| export WH_WINDOWS_VER="10" | ||||
| export WINEPREFIX="tflex17" | ||||
| export WINEPREFIX="tflex" | ||||
| export WH_XDG_OPEN="log" | ||||
| export WH_USE_MESA_GL_OVERRIDE="1" | ||||
|  | ||||
|   | ||||
							
								
								
									
										142
									
								
								sha256sum.list
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										142
									
								
								sha256sum.list
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,21 +1,152 @@ | ||||
| ##### WINE ##### | ||||
|  | ||||
| 009c95bfe2df3f9264c9c5092f3e30ea7a168dd7869046058a718a70739602d4  wine_wh_tflex_10-9_amd64.tar.xz | ||||
| 3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f  wine_x_tkg_10-0_i586.tar.xz | ||||
| 71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12  wine_x_tkg_10-0_amd64.tar.xz | ||||
| fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193  wine-9.0.14-alt1-i586-spravkibk.tar.xz | ||||
| e0a84bb4908c3927954d7eef6b8ac7212e442b8c107d000c6890fec340f96183  wine-9.0.14-alt1-amd64.tar.xz | ||||
| 6f86d2220b65b709bf88c6f829a4998de3b929cc2091cd1333a51c32e1491b79  wine-9.0.9-alt1-i586.tar.xz | ||||
| f1bf1261550ca2928cefacdb724926d3d6d103433d0ff6882ee9783a50d8f4e4  wine-8.8-staging-amd64.tar.xz | ||||
| 61bec1230b37b8fcc69fd45f848b44fd88cc41fcdd5dc3080336d7da63660f40  wine-7.16.1-alt1-amd64.tar.xz | ||||
| 6fea17fd131f57c2ebf7ca4c60d3c5a9e819afe16e5d0b77ecb750da99ae0e38  wine-7.16.1-alt1-i586.tar.xz | ||||
|  | ||||
| ##### DXVK ##### | ||||
| ##### WINE_LG ##### | ||||
| 765e52484f06169909b179f4884d04ae4b440ff868e4b5722e64fc7d7a036ad9  WINE_LG_10-10-1.tar.xz | ||||
| 7a5128fcebbeed652ba36c5135821fd2c82493e87d715e8bc63e3210ba7ee849  WINE_LG_10-11.tar.xz | ||||
| 373beeb85c1c8163e752a32a453dcf575dd7ecf971726cecb3195e330d094925  WINE_LG_10-12.tar.xz | ||||
| 92f3c5a47a27644fde3ec1da810afcd5e6c9c5c2bc9c1f5f76a82b55894e745b  WINE_LG_10-1.tar.xz | ||||
| ef8a71c269f5a2a7012aec9c16f307ab49ed09fa85a91b42d6c6b954d40401a6  WINE_LG_10-5.tar.xz | ||||
| 7aca95bd921a102e0a4464f4a8945095e05587bffbb924fe1603d2deb8283ba5  WINE_LG_10-7.tar.xz | ||||
| 503a86e8b9446a4805da524ba5ec2bde591787b354df098135d65f2ed9d66dca  WINE_LG_8-18-1.tar.xz | ||||
| 2714260a7f1f7d6427736aad2093dc17c1c10df9641b552e5ac4ac3fc73308ee  WINE_LG_9-10.tar.xz | ||||
| 3c2dbb33da9eaa7f3afcbe366293f6abf601257fb782a06040710ec6f1def1ec  WINE_LG_9-11.tar.xz | ||||
| da79f89b1fc3175f113bf5ec35fc2755550159034736cff086f2165480dd6e0f  WINE_LG_9-12-2.tar.xz | ||||
| 34a31802e50d6d70e1f4d23520c2d0047ae70d0cb4beb3e04046ee781e136a68  WINE_LG_9-12.tar.xz | ||||
| 6d6fd31ff71fd43f17182b466b6d499b61652775b7dbf25a18c3eaab7eacea2d  WINE_LG_9-2.tar.xz | ||||
| 3f0cda10a1019c6a18d832dc547709e612d88297ce332f0835c2bffeae9215c3  WINE_LG_9-5.tar.xz | ||||
| 51ff56e435a90eeff13ffbbac543a820d1df14d65f2e3b760ad100bc946e4bfc  WINE_LG_9-7.tar.xz | ||||
| 09901b17a7aaa13e5c1a1f99ab82c9f0d223aa2f5c9ac94938e5a9a0088bb244  WINE_LG_9-9.tar.xz | ||||
|  | ||||
| ##### PROTON_LG ##### | ||||
| d0f5b42096bc5ed379a26e415d99963f849129d5cec1ba9134b1ee50100b049b  PROTON_LG_10-10.tar.xz | ||||
| d87eb914ce7e5cab47e6b480aa400f8c7840f39a22d585bf35092a033ac09201  PROTON_LG_10-13.tar.xz | ||||
| 05ca56607af7cee30b4797ad6c6a111d38a52c9d5c2184d30eec2650f1585b58  PROTON_LG_10-15.tar.xz | ||||
| f8bfac3029bd79e211a6dc592c0959db239fb7807c410ed2a537c34467875c74  PROTON_LG_10-4.tar.xz | ||||
| 83d3cf60bbae6ca9d0508c2fdeaf3887bb72830eb52afc858d4afa009d0faa78  PROTON_LG_10-8.tar.xz | ||||
| f70039931d644898bb0a44daa7e3d44fcafa9dca0881e2277b1062ecd2a5357a  PROTON_LG_8-25-2.tar.xz | ||||
| 3e9202caf11d517406f82209e9e5385a4b0b1e4e16afa8b6f4fd517401537224  PROTON_LG_9-11.tar.xz | ||||
| 0481da38de07c71074c245624404994af164c9a6a584942c6d1f12966db2311a  PROTON_LG_9-12.tar.xz | ||||
| 786d6415bb884d0ec80617e02004558634ac6bd99474cd63c25e2e5fd339b112  PROTON_LG_9-15.tar.xz | ||||
| 8f05ee518e1861a79b1830301c57a8d4422b6a9c24dfeec07fde474d283d4152  PROTON_LG_9-16.tar.xz | ||||
| 8bd409e4c56472429042555c1b2102bcd8313a4d40a80fe17a2caac8f4c8d4ed  PROTON_LG_9-18.tar.xz | ||||
| e88e7b076ad1d85d625407468515d6f41dcb20b721a6bd699bcd8818647d136c  PROTON_LG_9-19.tar.xz | ||||
| bd5dfe3a5187eb3583e5bc2fbc7debe40760802539c1317211415edeeeae851e  PROTON_LG_9-27.tar.xz | ||||
| 63fde3b768a60cf736dcf3f9922cc2ab606cb7007e4cbe59f10cd038d3bdbee8  PROTON_LG_9-2.tar.xz | ||||
| e09c5da9ddffc5d390de7689df1778f279cc84a946665cc76ce77861010b2604  PROTON_LG_9-4.tar.xz | ||||
| 03ccc15aa4adcaa49f3eeb52bf2a9127bacd8d578478f716b390e812dab74e21  PROTON_LG_9-5-1.tar.xz | ||||
| 56eae794a48aa7322ce5a636c490974d7f2516528d3153991fb033b0fa5fe3cf  PROTON_LG_9-5.tar.xz | ||||
| 82263e1d0ab16130f15d419f2661fc5a7baf29193b9eeeb7eec3f01a3e54a1b3  PROTON_LG_9-7.tar.xz | ||||
|  | ||||
| ##### PROTON_STEAM ##### | ||||
| 09e6e386a87710996d634e08650bbc733365df65d3491a4372f06cf4e815a8b2  PROTON_STEAM_6.3-8.tar.xz | ||||
| 2f8bdfeb75e5427886aac7d2a599a1ee8900e50d5873a0e620d5703707bf4271  PROTON_STEAM_7.0-5.tar.xz | ||||
| b33aca95664067c9eff06a2b4380992d43a5d31880ff970fb340e851671be625  PROTON_STEAM_8.0-4.tar.xz | ||||
| 9a20af28f4213e4f1c532b79a20e6a95ef872130784fc306510637342c6f58a1  PROTON_STEAM_8.0-5.tar.xz | ||||
|  | ||||
| ##### DXVK ##### | ||||
| d1a86ca53ab7e156e1252d3cf7eed3c66fe0651699cfc9c4ba152024261d8258  dxvk-1.10.1-967.tar.xz | ||||
| 98411effbc1b3611b11c4ca3af2ad29400b08e1c8c380791d6351600a06fb3c7  dxvk-1.10.3-28.tar.xz | ||||
| 061568b51ce99d285ef2d0f1f31aab65b3e6fd34747073859c5a719bec2a7afd  dxvk-1.6.1.tar.xz | ||||
| 37ed4a8cd4c2bff3abbf830e6d602c2e0a971eda7c69b3f45834539bc84b1431  dxvk-2.0-116.tar.xz | ||||
| 50269fc2e9a27ec15865ec370e48934d5036774a8da180deb599f481ef6d11c7  dxvk-2.0-26.tar.xz | ||||
| a218072e6e750406b19602407201eb0e3cee80015d3b5b569373a830ac428c9e  dxvk-2.0-34.tar.xz | ||||
| 3ea6e464339be82932d665331d6219021ea7e6f8a1b94972b89feeac0d79aa03  dxvk-2.0-36.tar.xz | ||||
| 526f92560c5a4b1aec81d243641315a8bd8d9d5de8e6b69cd92f4fe5f47cbd79  dxvk-2.1-48.tar.xz | ||||
| ef7ef69e8c6e3036216cb1df4af33024995650bf956609a512d0e9644fb7c911  dxvk-2.1-51.tar.xz | ||||
| 7ebfc554ac0adeff2aea9c261eca029a921cce1e63bbc8989515f3f132c19130  dxvk-2.1-79.tar.xz | ||||
| 89ddc7f18c5b3066532a7a1b7fceaf0733406c0c03b0cd1d6b37287037670f0b  dxvk-2.1-85.tar.xz | ||||
| bb711363456acf7a5f4cad88e939ad0a9dd92b030ad4568d24a1c083cd9f31b1  dxvk-2.1.tar.xz | ||||
| 7b5d32da81897499b16fd0d630fe6e8faaa764f9671d992af77a380786bb78ff  dxvk-2.2-116.tar.xz | ||||
| e242eff8b1856d357ae8c9233bfd6e13a3a85785dc648bd8d68967732593c4aa  dxvk-2.2-137.tar.xz | ||||
| ff66e31df8d62a5b666c33548ecb98322366df1b9a080e9d3463e08861f08458  dxvk-2.2-164.tar.xz | ||||
| f1bbfff9aeb4dd0ee55343cdafabf4bfc1d920da3a4c514a99cc1759055185cb  dxvk-2.2-1.tar.xz | ||||
| b71105c70f64664c772a44565b525ae2e3c7a74765b8ef9852db300d6de3b548  dxvk-2.2-34.tar.xz | ||||
| f0ea1469d8e1e10642e2b12830ade0050d7976930db6dd6a38b83a989caab992  dxvk-2.2-7.tar.xz | ||||
| 50feeffdef071414c82b6ead88e70403685a9c0f482e58c702e97fa1f7bf79ed  dxvk-2.3.1-120.tar.xz | ||||
| 74c3e14b89d28d768197f29f1893c08e36336749eeca7f34efdafd38f3f3b0f3  dxvk-2.3.1-37.tar.xz | ||||
| 6c0485f0bd11159cda59f6ec3074918d9b86053833fc3e76af151ad7d56cc216  dxvk-2.3-13.tar.xz | ||||
| 85729d1dfa06c7b569b5e3f0dd834f20902395cdb065419f40de1f3c990f17a9  dxvk-2.3.1-72.tar.xz | ||||
| f0f999189431c227db08234be41823004cb86e3c85bb4134af62be56ebf764f5  dxvk-2.3.1-9.tar.xz | ||||
| a9cb76f8889afc133838b00c2cec153f7028df24cf56e2e15f995f14b074af9b  dxvk-2.3.1.tar.xz | ||||
| 37ad50ffce2e886a26e5c6557d4acc025971e6c8d04e45c8a39718a6a446984f  dxvk-2.3-26.tar.xz | ||||
| 38fde7df801be0c66c454cd1b4001c914d008d7e29886e1526f00dccde4ffad4  dxvk-2.3-57.tar.xz | ||||
| 2054dc956ea98a54c42bc9659270bebc0a8410293819fb862ede3481c41b2864  dxvk-2.3-5.tar.xz | ||||
| e0dfc268e5c3eeff830c71774070a079572ebb57d709ef11a7bc8a35baad06fd  dxvk-2.3-90.tar.xz | ||||
| 76f1b50ae6defc421f593826f192c8f4c8298ffc7b95abbe19f19ac86acebedc  dxvk-2.4.1-194.tar.xz | ||||
| 6c04b694e58b9da5c0a15acab3da1a1c3627674bf6612d009d730af8ffc4fb6d  dxvk-2.4.1-393.tar.xz | ||||
| 622e40cb20da30cf2771b4a1f30d898e231e39e4d8968f4a8052ae51086f59e7  dxvk-2.4.1-446.tar.xz | ||||
| 47a153abbeb38f9c679c171eca80558bd8744311e642c7f2469fe10fcd9a5db6  dxvk-2.4.1-74.tar.xz | ||||
| 89f2d4a26a7337cc697345e96023d612401717f8a71fa7c9c59835ef2d5c5a40  dxvk-2.4-37.tar.xz | ||||
| 49a29d069a9acf73967c69a4a873cb9d023b657717d3377405e23f4730314be0  dxvk-2.4-41.tar.xz | ||||
| 9b52cfa2b1b27b7fc2e4142c7bba1d93309aca548c7a3e4fac362b6375a587ae  dxvk-2.4-94.tar.xz | ||||
| 969b9a720fecf9c53b266c6e289e896e6ed7c49fee260424ab7bc00abbab2d41  dxvk-2.5.1-35.tar.xz | ||||
| b499be012ffa0b5e3079c9f475c79a749e8f8066924f68919aa898d06a8ba33d  dxvk-2.5.2-1.tar.xz | ||||
| 69f8b86ed92cab495f187840aa144691859631d304d2b1880e27de2e49c54244  dxvk-2.5.3-299.tar.xz | ||||
| 00f016b9bd8b2bb1165952edec3ad0da404b525b1b9eec5f4aae490944d47f82  dxvk-2.5.3-31.tar.xz | ||||
| 94c569b205d22e742dd165741a88f77a7a9c6feebd924097fbfd6f169aaa303b  dxvk-2.6.1-255.tar.xz | ||||
| a8a65fe53e054e9f9da89dc848dba689a67be7daba7e59dc82b3be7190925354  dxvk-2.6.1-368.tar.xz | ||||
| b4c7cbb6c09fdc2c42104ac9e4377167881d3f9d97b2ff125f36f1c351255ea5  dxvk-2.6.2.tar.xz | ||||
| eec7c6ed63789ebafeda16895678feb8d561ed8117b6ecdb4ab76c0beb3ae17c  dxvk-2.6-65.tar.xz | ||||
| 4ac30b8ed56a790c51c6c136c14cd61b8fec9c40fe5fc6ef6d8f042ee155c850  dxvk-2.7-44.tar.xz | ||||
| 8475410048889b9bbef2cf082fc15c67a6610f9dcfef6948b56bd956999bfb88  dxvk-2.7-46.tar.xz | ||||
| c02b565d2fca1dc4066fb58acfcdd3919386fdbb01b30cfe181d4dd02ac5f1bb  dxvk-2.7-5.tar.xz | ||||
| 5f97deb1eeb97ed41d0539264c0ca98e8841f79ec59684f32e7f1ca5c29a109b  dxvk-sarek-1.11.0.tar.xz | ||||
|  | ||||
| ##### VKD3D ##### | ||||
|  | ||||
| df1a940d2e072a884524f66a16e0f0ef74048bc6a6642b96eb257528a522109f  vkd3d-proton-1.1-2602.tar.xz | ||||
| bc86b06af83054e25bad21fe4bec4c10538837221fe847470571df7d556d355b  vkd3d-proton-1.1-2967.tar.xz | ||||
| 41bd2465015f069ef2d378e42a0f906fd40f1ce70e1602b36e445209b16e0d50  vkd3d-proton-1.1-3088.tar.xz | ||||
| 6d9eb9053fff0f8ed1760246f889d827dca6fbc48d508997a9b1a5b77a399991  vkd3d-proton-1.1-3090.tar.xz | ||||
| e92444e85cf59a65b12f14135a5a3ffd51d204bd84b0dfe4bd079fc3d202ec0c  vkd3d-proton-1.1-3094.tar.xz | ||||
| 3a88b84fae6c1425a17a9b0335f04a1e2ae414a31a8225fd0512c2bab62191fd  vkd3d-proton-1.1-3115.tar.xz | ||||
| 231b501433612598c5b85f16914a7415765b7cf4ec1debc921484efafd68e66b  vkd3d-proton-1.1-3132.tar.xz | ||||
| 8786fbde85181036932efa00051f73f6c66f620f97ef0ae3cc795239a817f667  vkd3d-proton-1.1-3325.tar.xz | ||||
| 3724c066273773ea3913a2a34c239465a17b1d04ab08ca8583c8abe97baa2e45  vkd3d-proton-1.1-3339.tar.xz | ||||
| 5b25fb04db003ebb6dbcb4566b9c4471e9b6e36d7271a8bd0b35835debc81fb8  vkd3d-proton-1.1-3410.tar.xz | ||||
| 7af94939575b83dabd9440af940e6bb0b639dbba86d96d5cf53c9a656a4ab28a  vkd3d-proton-1.1-3413.tar.xz | ||||
| 854ea12d5441ae7bec27f74e91851eaeab980cf3cc3a58341ccaa3956ee61851  vkd3d-proton-1.1-3414.tar.xz | ||||
| 919a533ee67fc869832a3dad71ef7afde4461d166f251fe1aff879bab61e50ec  vkd3d-proton-1.1-3424.tar.xz | ||||
| cd1a0b923a8d5a41d0f7e875c1706985c5add63b10ec17c73b15a180563cd4c6  vkd3d-proton-1.1-3445.tar.xz | ||||
| 573ff59ed58d9f304332441deb62c10b789512ef818f39e86954a8d7a21ded98  vkd3d-proton-1.1-3488.tar.xz | ||||
| 6a3edc710f9a5ab3a23bc7138a2fdde80a7ce8cc92cb4ecb4ea4e194f5753507  vkd3d-proton-1.1-3516.tar.xz | ||||
| ab90f2fd8272cb8b4a026291cccd2e336184c149c12cfe54b8a4eaed24841ce0  vkd3d-proton-1.1-3556.tar.xz | ||||
| 8ac31cb696e98579b95e7a6ad62f332d3faa8d72db62edb8bb6ba6110bd9def9  vkd3d-proton-1.1-3622.tar.xz | ||||
| de5b1bd60505118b440c85a674cdf25a56cdea0de98b6bb41079de1bf1e8d5c0  vkd3d-proton-1.1-3727.tar.xz | ||||
| e40617aa79940725d31256f39e095f96f49edd84a7a63b4f830a28d69b4f0db0  vkd3d-proton-1.1-3821.tar.xz | ||||
| 24aecefd3b5c4dc56794d39356baa7c0e1ad99fba4e32bb577b3716b8fb1a065  vkd3d-proton-1.1-3908.tar.xz | ||||
| 014aec87dfd14424f5bc3e8fc8d9704a677974e00b54b4ce5cc74042b26de5a0  vkd3d-proton-1.1-3954.tar.xz | ||||
| fde723756ab563ef11b77842886b3bc511fbfb639fcbee3da67883389a6e5384  vkd3d-proton-1.1-3973.tar.xz | ||||
| f4b37156792dc14768d1d161db220782d89065eb995c881efbad3de454782123  vkd3d-proton-1.1-3980.tar.xz | ||||
| c74d9d5958e829732833299a5b37a9d1b77d2fdf9d1991608be515cd46e5f1e8  vkd3d-proton-1.1-4022.tar.xz | ||||
| a90b829d773c740e51b400aafd8f46ed98f9b43fa26080d1cf52d6abc1f3963a  vkd3d-proton-1.1-4051.tar.xz | ||||
| b780ce056c7fe3868e1c0fac9c5efd30bbbbe73515a313315f5e1593f9bcdcb4  vkd3d-proton-1.1-4110.tar.xz | ||||
| 82134ae8ab79d6b884eb4461db2efd747cfb013a80019e3223def454eec8d631  vkd3d-proton-1.1-4167.tar.xz | ||||
| 0ffd513ef29e048fdfc0527b0894fd74e640be07c520b435a1089bdbcf0d780c  vkd3d-proton-1.1-4177.tar.xz | ||||
| aa0a8cf76a47a5967d5d5c4803d81715c04b609776ebf8b84c1c627f994f26f6  vkd3d-proton-1.1-4191.tar.xz | ||||
| fdb384c3c3b8fdf2bc55bf68895ff0c514bfef1cefa9d0047d32c9f691fe8ada  vkd3d-proton-1.1-4202.tar.xz | ||||
| 510447a2ab92df48124f9b88c97e0713f858ade48273aabc8393cabac7b1b1a4  vkd3d-proton-1.1-4240.tar.xz | ||||
| 1117f775efe00a4d14cb09ee77afe220f88a1fb0ec406ef4f004c17f9049a617  vkd3d-proton-1.1-4252.tar.xz | ||||
| 04288493c9a7671688c19fd304dcb4bcb4e05b6ceb7bd9b3fa57c1d3cb196769  vkd3d-proton-1.1-4271.tar.xz | ||||
| 8b509e904f1e75507eab4ee5ac42c6f5a45593eea9cef5c920175910756cbc47  vkd3d-proton-1.1-4325.tar.xz | ||||
| 1cc20f8c375fda6a9388d01fb9454eb634daf171610e62173daa976d350be002  vkd3d-proton-1.1-4326.tar.xz | ||||
| 90fea8a749e8df3981c8ef506c0ddaeb7a9ce92d7c7a9860f71f02bd5bfe443d  vkd3d-proton-1.1-4367.tar.xz | ||||
| aa2f98f4de0f8a550f0c7d659704b75ec2a77434e93e9b6e75faad9ecc998614  vkd3d-proton-1.1-4478.tar.xz | ||||
| 5d3e9e3a209477bfc41165c628fab3098aa44eddc4410744ecc486672c639906  vkd3d-proton-1.1-4511.tar.xz | ||||
| 3749e0a77283ecd038312b760b49790fc5956215d61f2781572618ebbcedb55d  vkd3d-proton-1.1-4591.tar.xz | ||||
| b3f56f58b5b764aba564c8b8c69eb12425467d57bf2a6457edff08842af03573  vkd3d-proton-1.1-4655.tar.xz | ||||
| 02ed90a4b760fad633146703ce35ef587ce244f7a053853f179bfb0c03ca1b7c  vkd3d-proton-1.1-4666.tar.xz | ||||
| 240207848855b08c3412fc5ab54c043e96baa6ea874499fb2e7fe11df114d8c1  vkd3d-proton-1.1-4707.tar.xz | ||||
| 8170e8bd34d47c5607603da2c93737acc19f4ebedc45e02115c282dfc0c36681  vkd3d-proton-2.14.1.tar.xz | ||||
| edf16d2b37bc77d121d5d81b06b60d3f694e0060c6606e729ceab30de3d27466  vkd3d-proton-sarek-2.6.0.tar.xz | ||||
|  | ||||
| ##### CPCSP_PROXY ##### | ||||
| 3153088ff28d6af415c3504a421e5382554dbb305f38d5a87dd84df90d680421  wine-cpcsp_proxy-0.6.1-alt1.tar.xz | ||||
| @@ -24,7 +155,6 @@ df1a940d2e072a884524f66a16e0f0ef74048bc6a6642b96eb257528a522109f  vkd3d-proton-1 | ||||
| 405bfe3b7c7f80034837c05656535053305727ee4bf1d993521b67b71d08ebc6  extra_fonts_v01.tar.xz | ||||
|  | ||||
| ##### PREFIX ##### | ||||
|  | ||||
| 0e86cd9958d1bd1bfac99e23165a091a4ea2fa3e693c551f69aabeed5f681fea  defpfx_x86_v01.tar.xz | ||||
| # create with wine_x_tkg_10-0_amd64 (universal user: xuser and isolate_home by default) | ||||
| # winetricks msxml3 msxml4 msxml6 andale arial comicsans courier georgia impact times trebuchet verdana webdings corefonts wsh57 vcrun6 mdac27 jet40 gdiplus lucida tahoma ucrtbase2019 vcrun2019 | ||||
| @@ -82,8 +212,8 @@ dfb44ce5e5af7dba1686932c63d6b05e5dd6919a21c78130a7d1d0271b93958e  audiorecstatio | ||||
| # create with wine_x_tkg_10-0_i586 (universal user: xuser) | ||||
| # winetricks arial dotnet7 dotnetdesktop7 renderer=gdi | ||||
|  | ||||
| 25e277c7afa4a9afc5f013cb05f872c12a7f381c4f0503a423dcacccca9a14c6  scadaoffice_pfx_x64_v03.tar.xz | ||||
| # create with wine_x_tkg_10-0_i586 (universal user: xuser) | ||||
| 4fa93434c5c15440014357323257ddcee7d28b94ad6a56bd6f5a08b33ae4c3cb  scadaoffice_pfx_x64_v04.tar.xz | ||||
| # create with wine-8.8-staging-amd64 | ||||
| # winetricks dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6 dotnet20 | ||||
| # + addons with ODBC, SSH, *.reg | ||||
| 0f4ef434df07bc338ae308af44330590eaa1d9c94b64850514e55b960642d0eb  scadoffice_addons_v02.tar.xz | ||||
|   | ||||
							
								
								
									
										704
									
								
								winehelper
									
									
									
									
									
								
							
							
						
						
									
										704
									
								
								winehelper
									
									
									
									
									
								
							| @@ -7,17 +7,20 @@ if [[ $(id -u) -eq 0 ]] ; then | ||||
| fi | ||||
|  | ||||
| ##### DEFAULT PATH ##### | ||||
| export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE | ||||
| export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT THIRD_PARTY_FILE | ||||
|  | ||||
| SCRIPT_NAME="$(basename "$0")" | ||||
| if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then | ||||
|     # переменные для установленного WineHelper в систему | ||||
|     WH_VERSION="$(rpm -q winehelper | awk -F'-' '{print $2}')" | ||||
|     USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME" | ||||
|     RUN_SCRIPT="/usr/bin/$SCRIPT_NAME" | ||||
|     DATA_PATH="/usr/share/$SCRIPT_NAME" | ||||
|     CHANGELOG_FILE="$(realpath "/usr/share/doc/winehelper"-*/CHANGELOG)" | ||||
|     WH_ICON_PATH="$DATA_PATH/image/gui/winehelper.svg" | ||||
|     LICENSE_FILE="$(realpath "/usr/share/doc/winehelper"-*/LICENSE)" | ||||
|     CHANGELOG_FILE="/usr/share/doc/winehelper-$WH_VERSION/CHANGELOG" | ||||
|     LICENSE_FILE="/usr/share/doc/winehelper-$WH_VERSION/LICENSE" | ||||
|     AGREEMENT="/usr/share/doc/winehelper-$WH_VERSION/LICENSE_AGREEMENT" | ||||
|     THIRD_PARTY_FILE="/usr/share/doc/winehelper-$WH_VERSION/THIRD-PARTY" | ||||
| else | ||||
|     # переменные для тестового запуска WineHelper из репозитория | ||||
|     USER_WORK_PATH="$HOME/test-$SCRIPT_NAME" | ||||
| @@ -26,6 +29,8 @@ else | ||||
|     CHANGELOG_FILE="$DATA_PATH/CHANGELOG" | ||||
|     WH_ICON_PATH="$DATA_PATH/image/gui/winehelper-devel.svg" | ||||
|     LICENSE_FILE="$DATA_PATH/LICENSE" | ||||
|     AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT" | ||||
|     THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY" | ||||
|  | ||||
|     # минимальная проверка синтаксиса скриптов | ||||
|     for self_check_script in "$RUN_SCRIPT" \ | ||||
| @@ -175,7 +180,7 @@ fi | ||||
|  | ||||
| ##### CHECK NOEXEC FOR /HOME ##### | ||||
| if mount -l | grep -E "[[:space:]]/home[[:space:]]" | grep -q "noexec" ; then | ||||
|     fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine не возможен из домашнего каталога." | ||||
|     fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine невозможен из домашнего каталога." | ||||
| fi | ||||
|  | ||||
| ##### ROOT ##### | ||||
| @@ -188,7 +193,7 @@ su_run () { | ||||
|             ((i++)) | ||||
|         done | ||||
|     else | ||||
|         pkexec "$@" && return 0 | ||||
|         pkexec bash -c "$@" && return 0 | ||||
|     fi | ||||
|     fatal "Не удалось установить необходимые компоненты!" | ||||
| } | ||||
| @@ -257,13 +262,13 @@ try_copy_dir () { | ||||
|  | ||||
| try_force_link_file () { | ||||
|     if [[ ! -f "$1" ]] ; then | ||||
|         print_warning "нет файла для создания символьной ссылки: $1" | ||||
|         print_warning "нет файла для создания символической ссылки: $1" | ||||
|         if [[ -f "$2" ]] ; then | ||||
|             try_remove_file "$2" | ||||
|             print_warning "удаляем символьную ссылку: $2" | ||||
|             print_warning "удаляем символическую ссылку: $2" | ||||
|         fi | ||||
|         return 1 | ||||
|     elif [[ -z "$2" ]] ; then fatal "нет пути для создания символьной ссылки на файл $1" | ||||
|     elif [[ -z "$2" ]] ; then fatal "нет пути для создания символической ссылки на файл $1" | ||||
|     else | ||||
|         try_remove_file "$2" | ||||
|         ln -s -f -r "$1" "$2" | ||||
| @@ -273,11 +278,11 @@ try_force_link_file () { | ||||
| } | ||||
|  | ||||
| try_force_link_dir () { | ||||
|     if [[ ! -d "$1" ]] ; then print_info "каталога $1 не существует для создания символьной сссылки" | ||||
|     elif [[ -z "$2" ]] ; then fatal "не указан путь для создания символьной ссылки на каталог $1" | ||||
|     if [[ ! -d "$1" ]] ; then print_info "каталога $1 не существует для создания символической сссылки" | ||||
|     elif [[ -z "$2" ]] ; then fatal "не указан путь для создания символической ссылки на каталог $1" | ||||
|     else | ||||
|         ln -s -f -r "$1" "$2" | ||||
|         [[ "$?" != 0 ]] && print_error "не удалось сделать символьную ссылку на каталог $1 по пути $2" || return 0 | ||||
|         [[ "$?" != 0 ]] && print_error "не удалось сделать символическую ссылку на каталог $1 по пути $2" || return 0 | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
| @@ -326,7 +331,7 @@ try_get_page () { | ||||
|     || grep -q "Forbidden" "$OUT_PAGE_TMP" | ||||
|     then | ||||
|         try_remove_file "$OUT_PAGE_TMP" | ||||
|         fatal "Страница сайта $1 не доступна, или превышено количество запросов к странице." | ||||
|         fatal "Страница сайта $1 не доступна или превышено количество запросов к странице." | ||||
|     else | ||||
|         return 0 | ||||
|     fi | ||||
| @@ -367,20 +372,14 @@ print_license_agreement () { | ||||
|     then return 0 | ||||
|     fi | ||||
|  | ||||
|     if [[ -f "$AGREEMENT" ]]; then | ||||
|         echo | ||||
|         print_warning "$(cat "$AGREEMENT")" | ||||
|     else | ||||
|         fatal "Файл лицензионного соглашения не найден: $AGREEMENT" | ||||
|     fi | ||||
|  | ||||
|     echo | ||||
|     print_warning "Лицензионные соглашения использования сторонних компонентов: | ||||
|  | ||||
| Некоторые компоненты, установленные в префикс и необходимые для запуска приложений, могут | ||||
| быть защищены авторским правом или лицензионными соглашениями. Вы обязаны самостоятельно | ||||
| убедиться в законности использования этих компонентов в вашей юрисдикции. | ||||
|  | ||||
| Мы не несём ответственности за нарушение лицензионных соглашений, связанное с использованием | ||||
| подготовленного префикса, а так же за программное обеспечение поставляемого из сторонних источников. | ||||
|  | ||||
| Подтверждая продолжение установки, вы соглашаетесь что ознакомились с данным отказом от | ||||
| ответственности и принимаете все риски, связанные с использованием программного обеспечения. | ||||
| " | ||||
|  | ||||
|     if print_confirmation "Подтвердите продолжение установки" ; then | ||||
|         touch "$license_agreement_file" | ||||
|         chmod 600 "$license_agreement_file" | ||||
| @@ -513,63 +512,41 @@ var_ld_library_path_update () { | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| extract_icon() { | ||||
|     check_prefix_var | ||||
|     local exe_file="$1" | ||||
|     local ico_name="$(basename "$exe_file" .exe).ico" | ||||
|     local png_name="$(basename "$exe_file" .exe).png" | ||||
|     local tmp_ico_dir="$WH_TMP_DIR/icons" | ||||
|     local user_icons="$WINEPREFIX/icons" | ||||
|  | ||||
|     create_new_dir "$tmp_ico_dir" | ||||
|  | ||||
|     if ! wrestool -x -t 14 "$exe_file" -o "$tmp_ico_dir/$ico_name" ; then | ||||
|         print_warning "Не удалось извлечь иконку из $exe_file" | ||||
|         try_remove_file "$tmp_ico_dir" | ||||
|         return 1 | ||||
| find_prefix () { | ||||
|     # Автоматическое определение префикса, если он не задан | ||||
|     if [[ -z "$WINEPREFIX" ]] && [[ "$1" == "$WH_PREFIXES_DIR"* ]]; then | ||||
|         local extracted_prefix | ||||
|         extracted_prefix="$(echo "$1" | grep -o ".*/prefixes/[^/]*")" | ||||
|         if [[ -d "$extracted_prefix" ]]; then | ||||
|             export WINEPREFIX="$extracted_prefix" | ||||
|             print_info "Префикс автоматически определен: $(basename "$WINEPREFIX")" | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     if ! icotool -x -i 1 "$tmp_ico_dir/$ico_name" -o "$tmp_ico_dir/$png_name" ; then | ||||
|         print_warning "Не удалось извлечь иконку из $ico_name" | ||||
|         try_remove_file "$tmp_ico_dir" | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     create_new_dir "$user_icons" | ||||
|  | ||||
|     if ! try_copy_file "$tmp_ico_dir/$png_name" "$user_icons" ; then | ||||
|         print_warning "Не удалось копировать иконку в префикс" | ||||
|         try_remove_file "$user_icons" | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     try_remove_dir "$tmp_ico_dir" | ||||
|     print_ok "Иконка сохранена: $user_icons/$png_name" | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| create_desktop () { | ||||
|     local name_desktop exe_file desktop_filename icon_file desktop_path | ||||
|     local name_desktop exe_file desktop_filename icon_file desktop_path icon_arg desktop_filename_arg | ||||
|     name_desktop="$1" | ||||
|     exe_file="$2" | ||||
|     if [[ -n $4 ]] && [[ $4 != "nocopy" ]]; | ||||
|     then desktop_filename="$4" | ||||
|     else desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")" | ||||
|     fi | ||||
|     if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$3" ]] | ||||
|     then icon_file="$3" | ||||
|     elif [[ -f "$WH_IMAGE_PATH/$3.png" ]] | ||||
|     then icon_file="$WH_IMAGE_PATH/$3.png" | ||||
|     else icon_file="wine" | ||||
|     icon_arg="$3" | ||||
|     desktop_filename_arg="$4" | ||||
|  | ||||
|     # Определяем имя desktop-файла | ||||
|     if [[ -n "$desktop_filename_arg" ]] && [[ "$desktop_filename_arg" != "nocopy" ]]; then | ||||
|         desktop_filename="$desktop_filename_arg" | ||||
|     else | ||||
|         desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|g")" | ||||
|     fi | ||||
|  | ||||
|     # Проверяем обязательные аргументы и наличие exe-файла | ||||
|     if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then | ||||
|         fatal "Used: $SCRIPT_NAME --desktop \"desktop_name\" \"path_to_exe\" \"name_png_from_image\"" | ||||
|         fatal "Использование: $0 desktop \"Имя ярлыка\" \"/путь/к/файлу.exe\" [иконка|auto] [имя_desktop_файла]" | ||||
|     elif [[ ! -f "$exe_file" ]] ; then | ||||
|         print_warning "Для создания ярлыка не найден исполняемый файл: $exe_file" | ||||
|  | ||||
|         BASENAME_EXE="$(basename "$exe_file")" | ||||
|         local BASENAME_EXE="$(basename "$exe_file")" | ||||
|         print_info "Запускаем поиск $BASENAME_EXE" | ||||
|         local FIND_PATH | ||||
|         if [[ -z "$DRIVE_C" ]] || [[ ! -d "$DRIVE_C" ]] | ||||
|         then FIND_PATH="$WH_PREFIXES_DIR" | ||||
|         else FIND_PATH="$DRIVE_C" | ||||
| @@ -579,11 +556,57 @@ create_desktop () { | ||||
|                     -iname "$BASENAME_EXE")" | ||||
|         if [[ -z "$exe_file" ]] || [[ ! -f "$exe_file" ]] | ||||
|         then fatal "Для создания ярлыка не найден исполняемый файл: $BASENAME_EXE" | ||||
|         else print_ok "Исполняемый файл $BASENAME_EXE найден по пути $(dirname "$exe_file")/" | ||||
|         else print_ok "Исполняемый файл $BASENAME_EXE найден по пути: $(dirname "$exe_file")/" | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     # создаем .desktop файл | ||||
|     find_prefix "$exe_file" | ||||
|  | ||||
|     # --- Логика обработки иконки --- | ||||
|     local user_icons_dir="$WINEPREFIX/icons" | ||||
|     create_new_dir "$user_icons_dir" | ||||
|  | ||||
|     # Случай 1: Восстановление из бэкапа (передан явный путь) | ||||
|     if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$icon_arg" ]]; then | ||||
|         icon_file="$icon_arg" | ||||
|     # Случай 2: 'auto' или пустой аргумент - пытаемся извлечь из EXE | ||||
|     elif [[ -z "$icon_arg" ]] || [[ "$icon_arg" == "auto" ]]; then | ||||
|         print_info "Попытка извлечь иконку из $exe_file..." | ||||
|         local png_name="$(basename "$exe_file" .exe).png" | ||||
|         local extracted_icon_path="$user_icons_dir/$png_name" | ||||
|  | ||||
|         # Проверяем, существует ли иконка, чтобы избежать повторного извлечения | ||||
|         if [[ -f "$extracted_icon_path" ]]; then | ||||
|             print_info "Иконка уже существует: $extracted_icon_path" | ||||
|             icon_file="$extracted_icon_path" | ||||
|         else | ||||
|             local tmp_ico_dir="$WH_TMP_DIR/icons_$$" # Используем PID для временного каталога | ||||
|             create_new_dir "$tmp_ico_dir" | ||||
|             local ico_name="$(basename "$exe_file" .exe).ico" | ||||
|  | ||||
|             if wrestool -x -t 14 "$exe_file" -o "$tmp_ico_dir/$ico_name" &>/dev/null && \ | ||||
|                icotool -x -i 1 "$tmp_ico_dir/$ico_name" -o "$tmp_ico_dir/$png_name" &>/dev/null && \ | ||||
|                try_copy_file "$tmp_ico_dir/$png_name" "$user_icons_dir/"; then | ||||
|  | ||||
|                 icon_file="$extracted_icon_path" | ||||
|                 print_ok "Иконка успешно извлечена и сохранена: $icon_file" | ||||
|             else | ||||
|                 print_warning "Не удалось извлечь иконку из $exe_file. Используется иконка по умолчанию." | ||||
|                 icon_file="wine" # Запасной вариант | ||||
|             fi | ||||
|             try_remove_dir "$tmp_ico_dir" | ||||
|         fi | ||||
|     # Случай 3: Передано конкретное имя иконки | ||||
|     elif [[ -f "$WH_IMAGE_PATH/$icon_arg.png" ]]; then | ||||
|         icon_file="$WH_IMAGE_PATH/$icon_arg.png" | ||||
|     # Случай 4: Запасной вариант по умолчанию | ||||
|     else | ||||
|         print_info "Иконка '$icon_arg' не найдена. Используется иконка по умолчанию." | ||||
|         icon_file="wine" | ||||
|     fi | ||||
|     # --- Конец логики обработки иконки --- | ||||
|  | ||||
|     # Создаем .desktop файл | ||||
|     create_new_dir "$WH_MENU_DIR" | ||||
|     { | ||||
|         echo "[Desktop Entry]" | ||||
| @@ -594,36 +617,47 @@ create_desktop () { | ||||
|         echo "StartupNotify=true" | ||||
|         echo "Path=$DATA_PATH" | ||||
|         echo "Icon=$icon_file" | ||||
|         echo "StartupWMClass=$(basename "$exe_file")" | ||||
|     } > "$USER_WORK_PATH/$desktop_filename.desktop" | ||||
|     chmod +x "$USER_WORK_PATH/$desktop_filename.desktop" | ||||
|  | ||||
|     cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/" | ||||
|  | ||||
|     if [[ "$RESTORE_FROM_BACKUP" == "1" ]] ; then | ||||
|         print_info "Пропускаем обновление desktop.list (режим восстановления из бэкапа)" | ||||
|         print_info "Пропускаем обновление desktop.list (режим восстановления)" | ||||
|     else | ||||
|         # добавляем информацию о приложении в "$WINEPREFIX/desktop.list" | ||||
|         # Добавляем информацию о приложении в "$WINEPREFIX/desktop.list" | ||||
|         if [[ -f "$WINEPREFIX/desktop.list" ]] \ | ||||
|         && grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list" | ||||
|         then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list" | ||||
|         fi | ||||
|         create_new_dir "$WINEPREFIX/icons" | ||||
|         try_copy_file "$icon_file" "$WINEPREFIX/icons/" | ||||
|         echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list" | ||||
|  | ||||
|         # Копируем финальную иконку в директорию иконок префикса, если ее там нет | ||||
|         local final_icon_name | ||||
|         if [[ -f "$icon_file" ]]; then | ||||
|             final_icon_name=$(basename "$icon_file") | ||||
|             if [[ ! -f "$user_icons_dir/$final_icon_name" ]]; then | ||||
|                 try_copy_file "$icon_file" "$user_icons_dir/" | ||||
|             fi | ||||
|         else | ||||
|             final_icon_name="$icon_file" # например, "wine" | ||||
|         fi | ||||
|  | ||||
|         echo "$name_desktop=${exe_file//$WINEPREFIX/}=${final_icon_name}" >> "$WINEPREFIX/desktop.list" | ||||
|     fi | ||||
|  | ||||
|     # создаем файл категории для меню | ||||
|     # Создаем файл категории для меню | ||||
|     create_new_dir "$HOME/.local/share/desktop-directories" | ||||
|     if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then | ||||
|     cat > "$WH_MENU_CATEGORY" <<EOF | ||||
| [Desktop Entry] | ||||
| Type=Directory | ||||
| Name=WineHelper | ||||
| Icon=wine | ||||
| Icon=winehelper | ||||
| EOF | ||||
|     fi | ||||
|  | ||||
|     # Создаем файл меню для всех приложений | ||||
|     # Создаем файл меню для всех приложений WineHelper | ||||
|     create_new_dir "$HOME/.config/menus/applications-merged" | ||||
|     if [[ ! -f "$WH_MENU_CONFIG" ]] ; then | ||||
|     cat > "$WH_MENU_CONFIG" <<EOF | ||||
| @@ -642,15 +676,15 @@ EOF | ||||
| EOF | ||||
|     fi | ||||
|  | ||||
|     # Обновляем кэш desktop файлов | ||||
|     # Обновляем кэш desktop-файлов | ||||
|     update-desktop-database "$HOME/.local/share/applications" | ||||
|  | ||||
|     if [[ $4 != "nocopy" ]] ; then | ||||
|     if [[ "$desktop_filename_arg" != "nocopy" ]] ; then | ||||
|         desktop_path="$(xdg-user-dir DESKTOP)" | ||||
|         print_info "В меню и на рабочем столе создан $desktop_filename.desktop" | ||||
|         print_info "В меню и на рабочем столе создан ярлык: $desktop_filename.desktop" | ||||
|         cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path" | ||||
|     else | ||||
|         print_info "В меню создан $desktop_filename.desktop" | ||||
|         print_info "В меню создан ярлык: $desktop_filename.desktop" | ||||
|     fi | ||||
|  | ||||
|     if [[ -n "$INSTALL_SCRIPT_NAME" ]] \ | ||||
| @@ -746,9 +780,10 @@ init_wined3d () { | ||||
| init_dxvk () { | ||||
|     check_variables USE_DXVK_VER "$1" | ||||
|  | ||||
|     get_dxvk () { | ||||
|         DXVK_URL="$1" | ||||
|         DXVK_PACKAGE="${WH_VULKAN_LIBDIR}/dxvk-${DXVK_VAR_VER}.tar.$(echo ${DXVK_URL#*.tar.})" | ||||
|     get_dxvk() { | ||||
|         local DXVK_URL="$1" | ||||
|         local DXVK_VAR_VER="$2" | ||||
|         local DXVK_PACKAGE="${WH_VULKAN_LIBDIR}/${DXVK_VAR_VER}.tar.$(echo "${DXVK_URL#*.tar.}")" | ||||
|         if try_download "$DXVK_URL" "$DXVK_PACKAGE" check256sum \ | ||||
|         && unpack "$DXVK_PACKAGE" "$WH_VULKAN_LIBDIR" | ||||
|         then | ||||
| @@ -759,8 +794,8 @@ init_dxvk () { | ||||
|     } | ||||
|  | ||||
|     for DXVK_VAR_VER in "$USE_DXVK_VER" $@ ; do | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/dxvk-$DXVK_VAR_VER" ]] ; then | ||||
|             get_dxvk "$CLOUD_URL/dxvk-${DXVK_VAR_VER}.tar.xz" | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/${DXVK_VAR_VER}" ]] ; then | ||||
|             get_dxvk "$CLOUD_URL/${DXVK_VAR_VER}.tar.xz" "$DXVK_VAR_VER" | ||||
|         fi | ||||
|     done | ||||
|  | ||||
| @@ -773,8 +808,8 @@ init_dxvk () { | ||||
|     fi | ||||
|  | ||||
|     for dxvkfiles in $DXVK_FILES ; do | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/dxvk-$USE_DXVK_VER/x64/$dxvkfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/dxvk-$USE_DXVK_VER/x32/$dxvkfiles.dll" | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${USE_DXVK_VER}/x64/$dxvkfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${USE_DXVK_VER}/x32/$dxvkfiles.dll" | ||||
|         then var_winedlloverride_update "$dxvkfiles=n" | ||||
|         fi | ||||
|     done | ||||
| @@ -783,9 +818,10 @@ init_dxvk () { | ||||
| init_vkd3d () { | ||||
|     check_variables USE_VKD3D_VER "$1" | ||||
|  | ||||
|     get_vkd3d () { | ||||
|         VKD3D_URL="$1" | ||||
|         VKD3D_PACKAGE="${WH_VULKAN_LIBDIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.$(echo ${VKD3D_URL#*.tar.})" | ||||
|     get_vkd3d() { | ||||
|         local VKD3D_URL="$1" | ||||
|         local VKD3D_VAR_VER="$2" | ||||
|         local VKD3D_PACKAGE="${WH_VULKAN_LIBDIR}/${VKD3D_VAR_VER}.tar.$(echo "${VKD3D_URL#*.tar.}")" | ||||
|         if try_download "$VKD3D_URL" "$VKD3D_PACKAGE" check256sum \ | ||||
|         && unpack "$VKD3D_PACKAGE" "$WH_VULKAN_LIBDIR" | ||||
|         then | ||||
| @@ -796,15 +832,15 @@ init_vkd3d () { | ||||
|     } | ||||
|  | ||||
|     for VKD3D_VAR_VER in "$USE_VKD3D_VER" $@ ; do | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/vkd3d-proton-$VKD3D_VAR_VER" ]] ; then | ||||
|             get_vkd3d "$CLOUD_URL/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/${VKD3D_VAR_VER}" ]] ; then | ||||
|             get_vkd3d "$CLOUD_URL/${VKD3D_VAR_VER}.tar.xz" "$VKD3D_VAR_VER" | ||||
|         fi | ||||
|     done | ||||
|  | ||||
|     VKD3D_FILES="d3d12 d3d12core libvkd3d-shader-1 libvkd3d-1" # libvkd3d-proton-utils-3 | ||||
|     for vkd3dfiles in $VKD3D_FILES ; do | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/vkd3d-proton-$USE_VKD3D_VER/x64/$vkd3dfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/vkd3d-proton-$USE_VKD3D_VER/x86/$vkd3dfiles.dll" | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${USE_VKD3D_VER}/x64/$vkd3dfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${USE_VKD3D_VER}/x86/$vkd3dfiles.dll" | ||||
|         then var_winedlloverride_update "$vkd3dfiles=n" | ||||
|         fi | ||||
|     done | ||||
| @@ -815,10 +851,20 @@ init_wine_ver () { | ||||
|         export WINEDIR="$WH_DIST_DIR/$WH_WINE_USE" | ||||
|  | ||||
|         if [[ ! -d "$WINEDIR" ]] ; then | ||||
|             local wine_package="$WH_TMP_DIR/$WH_WINE_USE.tar.xz" | ||||
|             try_download "$CLOUD_URL/$WH_WINE_USE.tar.xz" "$wine_package" check256sum | ||||
|             local download_url wine_package | ||||
|             download_url="$CLOUD_URL/$WH_WINE_USE.tar.xz" | ||||
|             wine_package="$WH_TMP_DIR/$WH_WINE_USE.tar.xz" | ||||
|  | ||||
|             try_download "$download_url" "$wine_package" "check256sum" | ||||
|             unpack "$wine_package" "$WH_DIST_DIR/" | ||||
|             try_remove_file "$wine_package" | ||||
|  | ||||
|             # Управление структурой подкаталога Proton "files", перемещая содержимое вверх | ||||
|             if [[ -d "$WINEDIR/files" ]]; then | ||||
|                 print_info "Обнаружена структура каталогов Proton, исправляем пути..." | ||||
|                 mv "$WINEDIR"/files/* "$WINEDIR/" | ||||
|                 rmdir "$WINEDIR/files" | ||||
|             fi | ||||
|         fi | ||||
|  | ||||
|         [[ ! -f "$WINEDIR/version" ]] && echo "$WH_WINE_USE" > "$WINEDIR/version" | ||||
| @@ -1065,10 +1111,15 @@ init_wineprefix () { | ||||
|     export DRIVE_C="$WINEPREFIX/drive_c" | ||||
|     export XUSER_PATH="$DRIVE_C/users/xuser" | ||||
|  | ||||
|     if [[ -d "$XUSER_PATH" ]] \ | ||||
|     && [[ ! -d "$DRIVE_C/users/$USER" ]] | ||||
|     then try_force_link_dir "$XUSER_PATH" "$DRIVE_C/users/$USER" | ||||
|     fi | ||||
|  | ||||
|     if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then | ||||
|         create_new_dir "$WINEPREFIX" | ||||
|         if [[ "$CLEAR_PREFIX" == "1" ]] | ||||
|         then print_warning "Используется переменная \"CLEAR_PREFIX=1\" что принудительно создает чистый префикс с установкой компонентов с помощью winetricks." | ||||
|         then print_warning "Используется переменная \"CLEAR_PREFIX=1\", которая принудительно создает чистый префикс с установкой компонентов с помощью winetricks." | ||||
|         elif [[ "$BASE_PFX" != "none" ]] | ||||
|         then get_base_pfx "$BASE_PFX" | ||||
|         fi | ||||
| @@ -1159,7 +1210,7 @@ init_wineprefix () { | ||||
|         for ext in $WH_XDG_OPEN ; do | ||||
|             get_and_set_reg_file --add "Software\Classes\.$ext" '@=' 'REG_SZ' "xdg-open" "system" | ||||
|         done | ||||
|         print_info "Используется ассоциации с нативными приложениями для файлов: \"$WH_XDG_OPEN\"" | ||||
|         print_info "Используются ассоциации с нативными приложениями для файлов: \"$WH_XDG_OPEN\"" | ||||
|     else | ||||
|         # удаление команды xdg-open из реестра | ||||
|         get_and_set_reg_file --delete "$XDG_OPEN_REG" '@=' | ||||
| @@ -1187,7 +1238,7 @@ init_wineprefix () { | ||||
|                 "${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" | ||||
|                     fatal "Проверьте правильность установки КриптоПро в системе.\n Инструкция: https://www.altlinux.org/CryptoPro" | ||||
|                 fi | ||||
|  | ||||
|                 if [[ $CPCSP_EXIT_STATUS == "0" ]] ; then | ||||
| @@ -1310,8 +1361,6 @@ init_database () { | ||||
| } | ||||
|  | ||||
| prepair_wine () { | ||||
|     var_winedlloverride_update "winemenubuilder.exe=d" | ||||
|  | ||||
|     if [[ -n "$INSTALL_SCRIPT_NAME" ]] | ||||
|     then print_info "Используются настройки из скрипта установки: $INSTALL_SCRIPT_NAME" | ||||
|     else init_database | ||||
| @@ -1469,6 +1518,237 @@ remove_prefix() { | ||||
|     fi | ||||
| } | ||||
|  | ||||
| select_wine_version() { | ||||
|     local sha256_file="$DATA_PATH/sha256sum.list" | ||||
|     [[ ! -f "$sha256_file" ]] && fatal "Файл с версиями WINE/Proton не найден: $sha256_file" | ||||
|  | ||||
|     if [[ "$WINEARCH" == "win64" ]]; then | ||||
|         print_info "Фильтруем версии для 64-битного префикса..." | ||||
|     else # win32 | ||||
|         print_info "Фильтруем версии для 32-битного префикса..." | ||||
|     fi | ||||
|  | ||||
|     local options=() | ||||
|     local total_versions_found=0 | ||||
|  | ||||
|     # --- System --- | ||||
|     local system_wine_display_name="system" | ||||
|     if command -v wine &>/dev/null; then | ||||
|         local system_wine_version | ||||
|         system_wine_version=$(wine --version 2>/dev/null) | ||||
|         [[ -n "$system_wine_version" ]] && system_wine_display_name="$system_wine_version" | ||||
|     fi | ||||
|     options+=("--- System ---") | ||||
|     options+=("$system_wine_display_name") | ||||
|  | ||||
|     # --- Other versions from sha256sum.list --- | ||||
|     local current_group="" | ||||
|     local group_versions=() | ||||
|  | ||||
|     flush_group() { | ||||
|         if [[ ${#group_versions[@]} -gt 0 ]]; then | ||||
|             IFS=$'\n' sorted_versions=($(sort -Vr <<<"${group_versions[*]}")) | ||||
|             unset IFS | ||||
|             options+=("${sorted_versions[@]}") | ||||
|             ((total_versions_found+=${#group_versions[@]})) | ||||
|             group_versions=() | ||||
|         fi | ||||
|     } | ||||
|  | ||||
|     while IFS= read -r line; do | ||||
|         if [[ "$line" =~ ^#+[[:space:]]([^#[:space:]]+)[[:space:]]#* ]]; then | ||||
|             flush_group | ||||
|             current_group="${BASH_REMATCH[1]}" | ||||
|             # Отображаем только группы, которые являются сборками WINE или PROTON | ||||
|             case "$current_group" in | ||||
|                 WINE|WINE_LG|PROTON_LG|PROTON_STEAM) | ||||
|                     local pretty_key=$(echo "$current_group" | tr '_' ' ' | sed -e "s/\b\(.\)/\u\1/g") | ||||
|                     options+=("--- $pretty_key ---") | ||||
|                     ;; | ||||
|                 *) | ||||
|                     current_group="" | ||||
|                     ;; | ||||
|             esac | ||||
|         elif [[ -n "$current_group" ]] && [[ "$line" =~ [a-f0-9]{64} ]]; then | ||||
|             local filename=$(echo "$line" | awk '{print $2}') | ||||
|             local version_name=${filename%.tar.xz} | ||||
|  | ||||
|             if [[ "$WINEARCH" == "win64" ]]; then | ||||
|                 if [[ "$version_name" =~ (amd64|x86_64|wow64) ]] || ! [[ "$version_name" =~ i[3-6]86 ]]; then | ||||
|                     group_versions+=("$version_name") | ||||
|                 fi | ||||
|             else # win32 | ||||
|                 group_versions+=("$version_name") | ||||
|             fi | ||||
|         fi | ||||
|     done < "$sha256_file" | ||||
|     flush_group | ||||
|  | ||||
|     if [[ $total_versions_found -eq 0 ]]; then | ||||
|         print_warning "Не найдено подходящих версий WINE/Proton для архитектуры $WINEARCH." | ||||
|         print_warning "Будет использована версия по умолчанию: $WH_WINE_USE" | ||||
|         return | ||||
|     fi | ||||
|  | ||||
|     local selectable_options=("Отмена") | ||||
|     local display_groups=() | ||||
|     local current_group_items=() | ||||
|     local choice_idx=0 | ||||
|  | ||||
|     flush_current_group() { | ||||
|         if ((${#current_group_items[@]} > 0)); then | ||||
|             # Объединяйте элементы с помощью уникального разделителя для последующего разделения | ||||
|             display_groups+=("$(IFS='@@@'; echo "${current_group_items[*]}")") | ||||
|             current_group_items=() | ||||
|         fi | ||||
|     } | ||||
|  | ||||
|     current_group_items+=(" 0) Отмена создания префикса") | ||||
|  | ||||
|     for opt in "${options[@]}"; do | ||||
|         if [[ "$opt" == "---"* ]]; then | ||||
|         flush_current_group | ||||
|         display_groups+=("$opt") | ||||
|         else | ||||
|             ((choice_idx++)) | ||||
|             current_group_items+=(" ${choice_idx}) $opt") | ||||
|             selectable_options+=("$opt") | ||||
|         fi | ||||
|     done | ||||
|     flush_current_group # Очистка последней группы | ||||
|  | ||||
|     print_info "Выберите версию WINE/Proton для $WINEARCH префикса:" | ||||
|  | ||||
|     local first_block=true | ||||
|     for group_data in "${display_groups[@]}"; do | ||||
|         if [[ "$group_data" == "---"* ]]; then | ||||
|             if [[ "$first_block" = false ]]; then | ||||
|             echo | ||||
|         fi | ||||
|             echo "$group_data" | ||||
|         else | ||||
|             local items_to_print=() | ||||
|             IFS='@@@' read -r -a items_to_print <<< "$group_data" | ||||
|  | ||||
|             local num_items=${#items_to_print[@]} | ||||
|             local term_width=${COLUMNS:-80} | ||||
|             local max_len=0 | ||||
|             for item in "${items_to_print[@]}"; do | ||||
|                 (( ${#item} > max_len )) && max_len=${#item} | ||||
|             done | ||||
|  | ||||
|             ((max_len+=2)) | ||||
|             local num_cols=$(( term_width / max_len )) | ||||
|             (( num_cols = num_cols > 0 ? num_cols : 1 )) | ||||
|             local num_rows=$(( (num_items + num_cols - 1) / num_cols )) | ||||
|  | ||||
|             for ((i=0; i<num_rows; i++)); do | ||||
|                 for ((j=0; j<num_cols; j++)); do | ||||
|                     local index=$(( i + j * num_rows )) | ||||
|                     (( index < num_items )) && printf "%-*s" "$max_len" "${items_to_print[index]}" | ||||
|                 done | ||||
|                 echo | ||||
|             done | ||||
|         fi | ||||
|         first_block=false | ||||
|         done | ||||
|  | ||||
|     while true; do | ||||
|         echo | ||||
|         local max_choice=$(( ${#selectable_options[@]} - 1 )) | ||||
|         read -p "Введите номер для выбора wine/proton (0-$max_choice): " user_choice | ||||
|         if [[ "$user_choice" =~ ^[0-9]+$ ]] && (( user_choice >= 0 && user_choice <= max_choice )); then | ||||
|             if [[ "$user_choice" == "0" ]]; then | ||||
|                 print_info "Операция отменена." | ||||
|                 return 1 | ||||
|             fi | ||||
|             local selected_opt | ||||
|             selected_opt="${selectable_options[$user_choice]}" | ||||
|             if [[ "$selected_opt" == "$system_wine_display_name" ]]; then | ||||
|                 export WH_WINE_USE="system" | ||||
|             else | ||||
|                 export WH_WINE_USE="$selected_opt" | ||||
|             fi | ||||
|             break | ||||
|         else | ||||
|             print_error "Неверный выбор. Введите число от 0 до $max_choice." | ||||
|         fi | ||||
|     done | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| create_prefix() { | ||||
|     print_info "Существующие префиксы:" | ||||
|     local prefixes=() | ||||
|     for prefix in "$WH_PREFIXES_DIR"/*; do | ||||
|         if [[ -d "$prefix" ]] ; then | ||||
|             prefixes+=("$(basename "$prefix")") | ||||
|         echo " - $(basename "$prefix")" | ||||
|         fi | ||||
|     done | ||||
|  | ||||
|     if [[ ${#prefixes[@]} -eq 0 ]]; then | ||||
|         print_info "Нет существующих префиксов." | ||||
|     fi | ||||
|     echo | ||||
|  | ||||
|     read -p "Введите имя для нового префикса или 0 для отмены (по умолчанию: default): " prefix_name | ||||
|     if [[ "$prefix_name" == "0" ]] ; then | ||||
|         print_info "Создание префикса отменено." | ||||
|         exit 0 | ||||
|     fi | ||||
|  | ||||
|     prefix_name=${prefix_name:-default} | ||||
|  | ||||
|     if [[ ! "$prefix_name" =~ ^[a-zA-Z0-9_.-]+$ ]] ; then | ||||
|         fatal "Имя префикса может содержать только латинские буквы, цифры, точки, дефисы и подчеркивания" | ||||
|     fi | ||||
|  | ||||
|     if [[ -d "$WH_PREFIXES_DIR/$prefix_name" ]] ; then | ||||
|         fatal "Префикс с именем '$prefix_name' уже существует. Создание отменено." | ||||
|     fi | ||||
|  | ||||
|     print_info "Создается префикс с именем: \"$prefix_name\"" | ||||
|  | ||||
|     print_info "Выберите разрядность префикса:" | ||||
|     echo " 0) Отмена создания префикса" | ||||
|     echo " 1) 32-bit" | ||||
|     echo " 2) 64-bit" | ||||
|     echo | ||||
|     local arch_choice | ||||
|     read -p "Ваш выбор [0-2] (по умолчанию 1): " arch_choice | ||||
|     case "${arch_choice:-1}" in | ||||
|         0) print_info "Создание префикса отменено." ; exit 0 ;; | ||||
|         1) export WINEARCH="win32" ;; | ||||
|         2) export WINEARCH="win64" ;; | ||||
|         *) fatal "Неверный выбор. Операция отменена." ;; | ||||
|     esac | ||||
|  | ||||
|     select_wine_version || exit 0 | ||||
|  | ||||
|     print_info "Выберите тип создаваемого префикса:" | ||||
|     echo " 0) Отмена создания префикса" | ||||
|     echo " 1) Чистый префикс (без библиотек)" | ||||
|     echo " 2) С рекомендуемыми библиотеками" | ||||
|     echo | ||||
|     local pfx_type_choice | ||||
|     read -p "Ваш выбор [0-2] (по умолчанию 1): " pfx_type_choice | ||||
|     case "${pfx_type_choice:-1}" in | ||||
|         0) print_info "Создание префикса отменено." ; exit 0 ;; | ||||
|         1) export BASE_PFX="none" ;; | ||||
|         2) ;; # Оставляем BASE_PFX пустым, чтобы init_wineprefix использовал значение по умолчанию | ||||
|         *) fatal "Неверный выбор. Операция отменена." ;; | ||||
|     esac | ||||
|  | ||||
|     export WINEPREFIX="$WH_PREFIXES_DIR/$prefix_name" | ||||
|  | ||||
|      if ! init_wine_ver || ! init_wineprefix; then | ||||
|         fatal "Ошибка инициализации префикса." | ||||
|     fi | ||||
|  | ||||
|     print_ok "Префикс '$prefix_name' (${WINEARCH}) успешно создан." | ||||
| } | ||||
|  | ||||
| remove_winehelper () { | ||||
|     local answer | ||||
|     if [[ $1 =~ --force|-y ]] ; then | ||||
| @@ -1479,7 +1759,7 @@ remove_winehelper () { | ||||
|         echo " Это удалит:" | ||||
|         echo " - Все настройки WineHelper" | ||||
|         echo " - Все приложения/программы, установленные через WineHelper" | ||||
|         echo " - Все ярлыки из меню и с рабочего стола созданные с помощью WineHelper" | ||||
|         echo " - Все ярлыки из меню и с рабочего стола, созданные с помощью WineHelper" | ||||
|         echo "======================================================" | ||||
|         if print_confirmation "Продолжить?" ; then | ||||
|             echo "----------------------------------------------" | ||||
| @@ -1538,9 +1818,9 @@ create_base_pfx () { | ||||
|     && [[ ! -L "$users_dir/$USER" ]] | ||||
|     then | ||||
|         if [[ -L "$users_dir/xuser" ]] | ||||
|         then try_remove_dir "$users_dir/xuser/" | ||||
|         then try_remove_dir "$users_dir/xuser" | ||||
|         fi | ||||
|         create_new_dir "$users_dir/xuser/" | ||||
|         create_new_dir "$users_dir/xuser" | ||||
|         cp -fr "$users_dir/$USER"/* "$users_dir/xuser/" | ||||
|     fi | ||||
|  | ||||
| @@ -1741,6 +2021,198 @@ restore_prefix() { | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| update_last_conf_var() { | ||||
|     local var_name="$1" | ||||
|     local new_value="$2" | ||||
|     local conf_file="$WINEPREFIX/last.conf" | ||||
|  | ||||
|     if [[ ! -f "$conf_file" ]] ; then | ||||
|         print_warning "Файл last.conf не найден, не могу обновить переменную $var_name." | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     if grep -q "export $var_name=" "$conf_file"; then | ||||
|         sed -i "s|^export $var_name=.*|export $var_name=\"$new_value\"|" "$conf_file" | ||||
|     else | ||||
|         echo "export $var_name=\"$new_value\"" >> "$conf_file" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| list_component_versions() { | ||||
|     local component_group="$1" | ||||
|     local sha256_file="$DATA_PATH/sha256sum.list" | ||||
|     [[ ! -f "$sha256_file" ]] && fatal "Файл с версиями не найден: $sha256_file" | ||||
|  | ||||
|     print_info "Доступные версии для $component_group:" | ||||
|  | ||||
|     awk -v group="$component_group" ' | ||||
|         /^#+\s*([^#]+?)\s*#*$/ { | ||||
|             current_group = $0 | ||||
|             gsub(/^#+\s*|\s*#*$/, "", current_group) | ||||
|         } | ||||
|         /^[a-f0-9]{64}/ { | ||||
|             if (current_group == group) { | ||||
|                 filename = $2 | ||||
|                 sub(/\.tar\.xz$/, "", filename) | ||||
|                 print " - " filename | ||||
|             } | ||||
|         } | ||||
|     ' "$sha256_file" | sort -Vr | ||||
| } | ||||
|  | ||||
| select_component_version() { | ||||
|     local component_group="$1" | ||||
|     local sha256_file="$DATA_PATH/sha256sum.list" | ||||
|     [[ ! -f "$sha256_file" ]] && fatal "Файл с версиями не найден: $sha256_file" | ||||
|  | ||||
|     local versions=() | ||||
|     local current_group="" | ||||
|     while IFS= read -r line; do | ||||
|         if [[ "$line" =~ ^#+[[:space:]]([^#[:space:]]+)[[:space:]]#* ]] ; then | ||||
|             current_group="${BASH_REMATCH[1]}" | ||||
|         elif [[ "$current_group" == "$component_group" ]] && [[ "$line" =~ [a-f0-9]{64} ]] ; then | ||||
|             local filename | ||||
|             filename=$(echo "$line" | awk '{print $2}') | ||||
|             local version_name=${filename%.tar.xz} | ||||
|             versions+=("$version_name") | ||||
|         fi | ||||
|     done < "$sha256_file" | ||||
|  | ||||
|     IFS=$'\n' versions=($(sort -Vr <<<"${versions[*]}")) | ||||
|     unset IFS | ||||
|  | ||||
|     if [[ ${#versions[@]} -eq 0 ]] ; then | ||||
|         print_warning "Не найдено доступных версий для $component_group." >&2 | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     print_info "Выберите версию $component_group для установки:" >&2 | ||||
|     echo >&2 | ||||
|  | ||||
|     local items_to_print=(" 0) Отмена") | ||||
|     for i in "${!versions[@]}" ; do | ||||
|         items_to_print+=(" $((i+1))) ${versions[$i]}") | ||||
|     done | ||||
|  | ||||
|     local num_items=${#items_to_print[@]} | ||||
|     local term_width=${COLUMNS:-80} | ||||
|     local max_len=0 | ||||
|     for item in "${items_to_print[@]}" ; do | ||||
|         (( ${#item} > max_len )) && max_len=${#item} | ||||
|     done | ||||
|  | ||||
|     ((max_len+=2)) | ||||
|     local num_cols=$(( term_width / max_len )) | ||||
|     (( num_cols = num_cols > 0 ? num_cols : 1 )) | ||||
|     local num_rows=$(( (num_items + num_cols - 1) / num_cols )) | ||||
|  | ||||
|     for ((i=0; i<num_rows; i++)) ; do | ||||
|         for ((j=0; j<num_cols; j++)) ; do | ||||
|             local index=$(( i + j * num_rows )) | ||||
|             (( index < num_items )) && printf "%-*s" "$max_len" "${items_to_print[index]}" >&2 | ||||
|         done | ||||
|         echo >&2 | ||||
|     done | ||||
|  | ||||
|     local max_choice=${#versions[@]} | ||||
|     local user_choice | ||||
|     while true; do | ||||
|         echo >&2 | ||||
|         read -p "Введите номер (0-$max_choice): " user_choice | ||||
|         if [[ "$user_choice" =~ ^[0-9]+$ ]] && (( user_choice >= 0 && user_choice <= max_choice )) ; then | ||||
|             if [[ "$user_choice" == "0" ]] ; then | ||||
|                 return 1 | ||||
|             fi | ||||
|             echo "${versions[$((user_choice-1))]}" | ||||
|             return 0 | ||||
|         else | ||||
|             print_error "Неверный выбор. Введите число от 0 до $max_choice." >&2 | ||||
|         fi | ||||
|     done | ||||
| } | ||||
|  | ||||
| run_install_to_prefix() { | ||||
|     export WINEPREFIX="$1" | ||||
|     local WIN_FILE_EXEC="$2" | ||||
|  | ||||
|     if [[ -z "$WINEPREFIX" ]] || [[ -z "$WIN_FILE_EXEC" ]]; then | ||||
|         fatal "Использование: $SCRIPT_NAME install-to-prefix <имя_префикса> <путь_к_установщику>" | ||||
|     fi | ||||
|  | ||||
|     check_prefix_var | ||||
|     prepair_wine | ||||
|     wine_run_install "$WIN_FILE_EXEC" | ||||
| } | ||||
|  | ||||
| run_install_dxvk() { | ||||
|     local version="$1" | ||||
|     if [[ -z "$version" ]] ; then | ||||
|         version=$(select_component_version "DXVK") | ||||
|         [[ $? -ne 0 ]] && print_info "Установка DXVK отменена." && return | ||||
|     elif [[ "$version" == "list" ]]; then | ||||
|         list_component_versions "DXVK" | ||||
|         return | ||||
|     fi | ||||
|     check_prefix_var | ||||
|     init_database | ||||
|     init_wine_ver | ||||
|     init_wineprefix | ||||
|     if [[ "$version" == "none" ]] ; then | ||||
|         print_info "Удаление DXVK..." | ||||
|         init_wined3d | ||||
|         update_last_conf_var "DXVK_VER" "" | ||||
|     else | ||||
|         init_dxvk "$version" | ||||
|         update_last_conf_var "DXVK_VER" "$USE_DXVK_VER" | ||||
|     fi | ||||
|     wait_wineserver | ||||
| } | ||||
|  | ||||
| run_install_vkd3d() { | ||||
|     local version="$1" | ||||
|     if [[ -z "$version" ]] ; then | ||||
|         version=$(select_component_version "VKD3D") | ||||
|         [[ $? -ne 0 ]] && print_info "Установка VKD3D отменена." && return | ||||
|     elif [[ "$version" == "list" ]] ; then | ||||
|         list_component_versions "VKD3D" | ||||
|         return | ||||
|     fi | ||||
|     check_prefix_var | ||||
|     init_database | ||||
|     init_wine_ver | ||||
|     init_wineprefix | ||||
|     if [[ "$version" == "none" ]] ; then | ||||
|         print_info "Удаление VKD3D..." | ||||
|         init_wined3d | ||||
|         update_last_conf_var "VKD3D_VER" "" | ||||
|     else | ||||
|         init_vkd3d "$version" | ||||
|         update_last_conf_var "VKD3D_VER" "$USE_VKD3D_VER" | ||||
|     fi | ||||
|     wait_wineserver | ||||
| } | ||||
|  | ||||
| run_change_wine_version() { | ||||
|     local new_version="$1" | ||||
|  | ||||
|     check_prefix_var | ||||
|     init_database | ||||
|  | ||||
|     if [[ -z "$new_version" ]]; then | ||||
|         select_wine_version || exit 0 | ||||
|         new_version="$WH_WINE_USE" | ||||
|     else | ||||
|         export WH_WINE_USE="$new_version" | ||||
|     fi | ||||
|  | ||||
|     init_wine_ver | ||||
|  | ||||
|     init_wineprefix | ||||
|  | ||||
|     wait_wineserver | ||||
|     print_ok "Версия Wine для префикса $PREFIX_NAME успешно изменена на $WH_WINE_USE." | ||||
| } | ||||
|  | ||||
| wh_info () { | ||||
|     echo "Использование: $SCRIPT_NAME [команда] | ||||
|  | ||||
| @@ -1749,9 +2221,14 @@ wh_info () { | ||||
|     install [скрипт]                запустить скрипт установки программы | ||||
|     install [скрипт] --clear-pfx    не использовать готовый префикс для установки ПО | ||||
|  | ||||
|     install-dxvk [версия|none|list] установить, удалить или показать версии DXVK | ||||
|     install-vkd3d [версия|none|list] установить, удалить или показать версии VKD3D | ||||
|     change-wine [версия]            изменить версию Wine/Proton для текущего префикса | ||||
|  | ||||
|     installed                       список установленных программ | ||||
|     run [программа]                 запуск программы (отладка) | ||||
|     remove-all                      удалить WineHelper и все связанные данные | ||||
|     create-prefix                   создать префикс | ||||
|     remove-prefix [имя_префикса]    удалить префикс и все связанные данные | ||||
|     backup-prefix [имя_префикса]    создать резервную копию префикса | ||||
|     restore-prefix \"путь/до/whpack\" восстановить префикс из резервной копии | ||||
| @@ -1783,6 +2260,10 @@ else | ||||
|     arg1="--help" | ||||
| fi | ||||
|  | ||||
| # отключаем создание .desktop файлов средствами wine | ||||
| # и отключаем winebth, так как может сломать winedevice.exe | ||||
| var_winedlloverride_update "winemenubuilder.exe,winebth.sys=d" | ||||
|  | ||||
| case "$arg1" in | ||||
|     --version|version) rpm -qi "$SCRIPT_NAME" ; exit 0 ;; | ||||
|     --help|help) wh_info ; exit 0 ;; | ||||
| @@ -1795,17 +2276,24 @@ case "$arg1" in | ||||
|     winetricks) prepair_wine ; "$WH_WINETRICKS" -q "$@" ;; | ||||
|     desktop) create_desktop "$@" ; exit 0 ;; | ||||
|     install|-i) run_autoinstall "$@" ;; | ||||
|     install-to-prefix) run_install_to_prefix "$@" ;; | ||||
|     install-dxvk) run_install_dxvk "$@" ;; | ||||
|     install-vkd3d) run_install_vkd3d "$@" ;; | ||||
|     change-wine) run_change_wine_version "$@" ;; | ||||
|     installed) check_installed_programs "$1" ;; | ||||
|     run|-r) run_installed_programs "$1" ;; | ||||
|     backup-prefix) backup_prefix "$@" ;; | ||||
|     restore-prefix) restore_prefix "$@" ;; | ||||
|     remove-all) remove_winehelper "$@" ;; | ||||
|     create-prefix) create_prefix "$@" ;; | ||||
|     remove-prefix) remove_prefix "$@" ;; | ||||
|     create-base-pfx) create_base_pfx "$@" ;; | ||||
|     init-prefix) prepair_wine ; wait_wineserver ;; | ||||
|     *) | ||||
|         if [[ -f "$arg1" ]] ; then | ||||
|             WIN_FILE_EXEC="$(readlink -f "$arg1")" | ||||
|             WIN_FILE_NAME="$(basename "$arg1")" | ||||
|             WIN_FILE_NAME="$(basename "$WIN_FILE_EXEC")" | ||||
|             find_prefix "$WIN_FILE_EXEC" | ||||
|             case "${WIN_FILE_NAME,,}" in | ||||
|                 *.exe) prepair_wine ; wine_run $WINE_WIN_START "$WIN_FILE_EXEC" "$@" ;; | ||||
|                 *.msi) prepair_wine ; wine_run msiexec /i "$WIN_FILE_EXEC" "$@" ;; | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| #!/usr/bin/env xdg-open | ||||
| [Desktop Entry] | ||||
| Name=WineHelper | ||||
| Exec=winehelper gui %F | ||||
| @@ -6,5 +7,5 @@ Comment[ru]=Запуск графического интерфейса WineHelpe | ||||
| Type=Application | ||||
| Categories=WineHelper;Utility;Emulator; | ||||
| StartupNotify=true | ||||
| Path=/usr/bin/winehelper | ||||
| Icon=winehelper | ||||
| StartupWMClass=winehelper | ||||
|   | ||||
							
								
								
									
										3411
									
								
								winehelper_gui.py
									
									
									
									
									
								
							
							
						
						
									
										3411
									
								
								winehelper_gui.py
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user