Compare commits
	
		
			51 Commits
		
	
	
		
			0.5.4.1
			...
			66c56f6ecf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 66c56f6ecf | ||
|  | 221b59eda7 | ||
|  | adf5f78360 | ||
|  | 01f19cd94d | ||
|  | 117e497f94 | ||
|  | 3527846c6c | ||
|  | 553d427d66 | ||
|  | 0f8f192634 | ||
|  | 7f64378670 | ||
|  | 165c4ee110 | ||
|  | 843b90c1c2 | ||
|  | e3ac6dd967 | ||
|  | 5763749aa0 | ||
|  | b1f192b2ff | ||
|  | 42aa29d208 | ||
|  | 3ad737e27d | ||
|  | 97996fb67b | ||
|  | 151b6d6e30 | ||
|  | 9f994a8cc3 | ||
|  | 463306d0cf | ||
|  | 940cface08 | ||
|  | 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 | 
| @@ -4,7 +4,7 @@ _winehelper_completions() { | ||||
|     COMPREPLY=() | ||||
|     cur="${COMP_WORDS[COMP_CWORD]}" | ||||
|     prev="${COMP_WORDS[COMP_CWORD-1]}" | ||||
|     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" | ||||
|     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 | ||||
|   | ||||
| @@ -20,6 +20,7 @@ _winehelper() { | ||||
|     'remove-prefix[Удалить префикс и все связанные данные]' | ||||
|     'backup-prefix[Создать резерную копию префикса]' | ||||
|     'restore-prefix[восстановить префикс из резервной копии "путь/до/whpack"]' | ||||
|     'change-wine[Изменить версию Wine/Proton для префикса]' | ||||
|   ) | ||||
|  | ||||
|   wine_cmd=( | ||||
| @@ -69,6 +70,9 @@ _winehelper() { | ||||
|         install-vkd3d) | ||||
|           _get_component_versions 'install-vkd3d' | ||||
|           ;; | ||||
|         change-wine) | ||||
|           _get_wine_versions | ||||
|           ;; | ||||
|         *) | ||||
|           _values 'winehelper options' "${opts[@]}" "${wine_cmd[@]}" | ||||
|           ;; | ||||
| @@ -87,6 +91,22 @@ _get_component_versions () { | ||||
|   _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" | ||||
|   | ||||
							
								
								
									
										
											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 | 
							
								
								
									
										39
									
								
								manualinstall/nettest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								manualinstall/nettest
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/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 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" | ||||
|     if [[ $ZIP_FILE =~ "tests" ]] ; then | ||||
|         unpack "$2" "$PROG_PATH/tests" | ||||
|         print_info "Тесты $(basename "$ZIP_FILE") установлены." | ||||
|         exit 0 | ||||
|     else | ||||
|         unpack "$2" "$PROG_PATH" | ||||
|     fi | ||||
|  | ||||
|     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 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -5,6 +5,7 @@ | ||||
| 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 | ||||
|  | ||||
| @@ -211,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 | ||||
|   | ||||
							
								
								
									
										225
									
								
								winehelper
									
									
									
									
									
								
							
							
						
						
									
										225
									
								
								winehelper
									
									
									
									
									
								
							| @@ -7,18 +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 AGREEMENT | ||||
| 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)" | ||||
|     AGREEMENT="$(realpath "/usr/share/doc/winehelper"-*/LICENSE_AGREEMENT)" | ||||
|     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" | ||||
| @@ -28,6 +30,7 @@ else | ||||
|     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" \ | ||||
| @@ -159,12 +162,10 @@ check_variables WINE_WIN_START "start /wait /high /unix" | ||||
|  | ||||
| check_variables WINE_CPU_TOPOLOGY "8" | ||||
|  | ||||
| check_variables USE_RENDERER "opengl" # opengl, damavand, proton | ||||
|  | ||||
| check_variables DXVK_VER "1.10.3-28" | ||||
| check_variables DXVK_VER "none" | ||||
| # check_variables DXVK_CONFIG_FILE "path/to/dxvk.conf" | ||||
|  | ||||
| check_variables VKD3D_VER "1.1-2602" | ||||
| check_variables VKD3D_VER "none" | ||||
| # check_variables VKD3D_LIMIT_TESS_FACTORS 64 | ||||
| # check_variables VKD3D_FEATURE_LEVEL "12_0" | ||||
|  | ||||
| @@ -392,10 +393,14 @@ print_license_agreement () { | ||||
| } | ||||
|  | ||||
| try_download () { | ||||
|     if [[ $WH_USE_GUI == "1" ]] \ | ||||
|     && [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]] | ||||
|     then print_ok "Соглашения приняты из графического интерфейса." | ||||
|     else print_license_agreement | ||||
|     if [[ $1 != "cloud" ]] ; then | ||||
|         if [[ $WH_USE_GUI == "1" ]] \ | ||||
|         && [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]] | ||||
|         then print_ok "Соглашения приняты из графического интерфейса." | ||||
|         else print_license_agreement | ||||
|         fi | ||||
|     else | ||||
|         shift | ||||
|     fi | ||||
|     local download_file_url output_file output_file_name | ||||
|     download_file_url="${1// /%20}" | ||||
| @@ -614,6 +619,7 @@ 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" | ||||
|  | ||||
| @@ -649,7 +655,7 @@ create_desktop () { | ||||
| [Desktop Entry] | ||||
| Type=Directory | ||||
| Name=WineHelper | ||||
| Icon=wine | ||||
| Icon=winehelper | ||||
| EOF | ||||
|     fi | ||||
|  | ||||
| @@ -690,9 +696,11 @@ EOF | ||||
|             echo '#!/usr/bin/env bash' | ||||
|             echo "# cmd_name: $INSTALL_SCRIPT_NAME" | ||||
|         } > "$exe_file".whdb | ||||
|         grep -e "info_" -e "#####" -e "export" -e "var_" "$INSTALL_SCRIPT" \ | ||||
|         | grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \ | ||||
|  | ||||
|         grep -e "info_" -e "#####" -e "PROG_URL=" -e "WINEPREFIX=" -e "INSTALL_DLL=" \ | ||||
|              -e "PROG_NAME=" -e "PROG_ICON=" -e "var_" "$INSTALL_SCRIPT" \ | ||||
|         | awk '{$1=$1;print}' >> "$exe_file".whdb | ||||
|  | ||||
|         print_info "Создан файл настроек для $exe_file" | ||||
|     fi | ||||
| } | ||||
| @@ -756,31 +764,25 @@ run_installed_programs () { | ||||
|     fi | ||||
| } | ||||
|  | ||||
| init_wined3d () { | ||||
|     if [[ "$USE_RENDERER" != "proton" ]] ; then | ||||
|         WINED3D_FILES="d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi d3d12 d3d12core" | ||||
|         for wined3dfiles in $WINED3D_FILES ; do | ||||
|             try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll" | ||||
|             try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll" | ||||
|         done | ||||
| #         if [[ "$USE_RENDERER" == "damavand" ]] | ||||
| #         then export WINE_D3D_CONFIG="renderer=vulkan" | ||||
| #         else export WINE_D3D_CONFIG="renderer=gl" | ||||
| #         fi | ||||
|         return 0 | ||||
|     else | ||||
|         return 1 | ||||
|     fi | ||||
| copy_wined3d () { | ||||
|     for wined3dfiles in $1 ; do | ||||
|         try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll" | ||||
|         try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll" | ||||
|     done | ||||
| } | ||||
|  | ||||
| init_dxvk () { | ||||
|     check_variables USE_DXVK_VER "$1" | ||||
|     DXVK_VER="$1" | ||||
|     if [[ $DXVK_VER == "none" ]] ; then | ||||
|         copy_wined3d "d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi" | ||||
|         return 0 | ||||
|     fi | ||||
|  | ||||
|     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 \ | ||||
|         if try_download cloud "$DXVK_URL" "$DXVK_PACKAGE" check256sum \ | ||||
|         && unpack "$DXVK_PACKAGE" "$WH_VULKAN_LIBDIR" | ||||
|         then | ||||
|             try_remove_file "$DXVK_PACKAGE" | ||||
| @@ -789,36 +791,37 @@ init_dxvk () { | ||||
|         return 1 | ||||
|     } | ||||
|  | ||||
|     for DXVK_VAR_VER in "$USE_DXVK_VER" $@ ; do | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/${DXVK_VAR_VER}" ]] ; then | ||||
|             get_dxvk "$CLOUD_URL/${DXVK_VAR_VER}.tar.xz" "$DXVK_VAR_VER" | ||||
|         fi | ||||
|     done | ||||
|     if [[ ! -d "${WH_VULKAN_LIBDIR}/${DXVK_VER}" ]] ; then | ||||
|         get_dxvk "$CLOUD_URL/${DXVK_VER}.tar.xz" "$DXVK_VER" | ||||
|     fi | ||||
|  | ||||
|     if [[ "${WH_USE_WINE_DXGI}" == 1 ]] ; then | ||||
|     if [[ $WH_USE_WINE_DXGI == "1" ]] ; then | ||||
|         DXVK_FILES="d3d9 d3d10_1 d3d10 d3d11" # dxvk_config openvr_api_dxvk" | ||||
|         try_copy_wine_dll_to_pfx_64 "dxgi.dll" | ||||
|         try_copy_wine_dll_to_pfx_32 "dxgi.dll" | ||||
|         copy_wined3d "dxgi" | ||||
|     else | ||||
|         DXVK_FILES="d3d9 d3d10_1 d3d10 d3d11 dxgi" # dxvk_config openvr_api_dxvk" | ||||
|     fi | ||||
|  | ||||
|     for dxvkfiles in $DXVK_FILES ; do | ||||
|         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" | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${DXVK_VER}/x64/$dxvkfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${DXVK_VER}/x32/$dxvkfiles.dll" | ||||
|         then var_winedlloverride_update "$dxvkfiles=n" | ||||
|         fi | ||||
|     done | ||||
| } | ||||
|  | ||||
| init_vkd3d () { | ||||
|     check_variables USE_VKD3D_VER "$1" | ||||
|     VKD3D_VER="$1" | ||||
|     if [[ $VKD3D_VER == "none" ]] ; then | ||||
|         copy_wined3d "d3d12 d3d12core" | ||||
|         return 0 | ||||
|     fi | ||||
|  | ||||
|     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 \ | ||||
|         if try_download cloud "$VKD3D_URL" "$VKD3D_PACKAGE" check256sum \ | ||||
|         && unpack "$VKD3D_PACKAGE" "$WH_VULKAN_LIBDIR" | ||||
|         then | ||||
|             try_remove_file "$VKD3D_PACKAGE" | ||||
| @@ -827,16 +830,14 @@ init_vkd3d () { | ||||
|         return 1 | ||||
|     } | ||||
|  | ||||
|     for VKD3D_VAR_VER in "$USE_VKD3D_VER" $@ ; do | ||||
|         if [[ ! -d "${WH_VULKAN_LIBDIR}/${VKD3D_VAR_VER}" ]] ; then | ||||
|             get_vkd3d "$CLOUD_URL/${VKD3D_VAR_VER}.tar.xz" "$VKD3D_VAR_VER" | ||||
|         fi | ||||
|     done | ||||
|     if [[ ! -d "${WH_VULKAN_LIBDIR}/${VKD3D_VER}" ]] ; then | ||||
|         get_vkd3d "$CLOUD_URL/${VKD3D_VER}.tar.xz" "$VKD3D_VER" | ||||
|     fi | ||||
|  | ||||
|     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}/${USE_VKD3D_VER}/x64/$vkd3dfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${USE_VKD3D_VER}/x86/$vkd3dfiles.dll" | ||||
|         try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${VKD3D_VER}/x64/$vkd3dfiles.dll" | ||||
|         if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${VKD3D_VER}/x86/$vkd3dfiles.dll" | ||||
|         then var_winedlloverride_update "$vkd3dfiles=n" | ||||
|         fi | ||||
|     done | ||||
| @@ -851,7 +852,7 @@ init_wine_ver () { | ||||
|             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" | ||||
|             try_download cloud "$download_url" "$wine_package" "check256sum" | ||||
|             unpack "$wine_package" "$WH_DIST_DIR/" | ||||
|             try_remove_file "$wine_package" | ||||
|  | ||||
| @@ -904,7 +905,7 @@ init_wine_ver () { | ||||
|             CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER" | ||||
|             CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz" | ||||
|  | ||||
|             try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum | ||||
|             try_download cloud "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum | ||||
|             unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR" | ||||
|  | ||||
|             cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "$WINEDIR/lib/wine/" | ||||
| @@ -1107,6 +1108,11 @@ 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" ]] | ||||
| @@ -1175,6 +1181,7 @@ init_wineprefix () { | ||||
|     # добавление ассоциаций файлов для запуска нативного приложения из wine | ||||
|     # пример переменной: WH_XDG_OPEN="txt doc pdf" | ||||
|     check_variables WH_XDG_OPEN "0" | ||||
|  | ||||
|     local WRAPPER="${WH_TMP_DIR}/wh-xdg-open.sh" | ||||
|     local XDG_OPEN_REG="Software\Classes\xdg-open\shell\open\command" | ||||
|     if [[ $WH_XDG_OPEN != "0" ]] ; then | ||||
| @@ -1197,13 +1204,19 @@ init_wineprefix () { | ||||
|         # добавляем новую команду xdg-open в реестр | ||||
|         get_and_set_reg_file --add "$XDG_OPEN_REG" '@=' 'REG_SZ' "$WRAPPER %1" "system" | ||||
|  | ||||
|         # удаляем старые ассоциации, которых нет в новом списке | ||||
|         sed -i '/@="xdg-open"/d' "$WINEPREFIX/system.reg" | ||||
|  | ||||
|         # добавляем ассоциации файлов для запуска с помощью xdg-open | ||||
|         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\"" | ||||
|     else | ||||
|         # удаление команды xdg-open из реестра | ||||
|         # удаление всех ассоциаций | ||||
|         for old_ext in $old_xdg_open; do | ||||
|             get_and_set_reg_file --delete "Software\Classes\.$old_ext" '@=' | ||||
|         done | ||||
|         get_and_set_reg_file --delete "$XDG_OPEN_REG" '@=' | ||||
|         # удаяем скрипт-обёртку | ||||
|         try_remove_file "$WRAPPER" | ||||
| @@ -1265,7 +1278,7 @@ init_wineprefix () { | ||||
|     echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf" | ||||
|     for var in WH_WINE_USE BASE_PFX WINEARCH WH_WINDOWS_VER WINEESYNC WINEFSYNC \ | ||||
|     STAGING_SHARED_MEMORY WINE_LARGE_ADDRESS_AWARE WH_USE_SHADER_CACHE WH_USE_WINE_DXGI \ | ||||
|     WINE_CPU_TOPOLOGY USE_RENDERER DXVK_VER VKD3D_VER WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE | ||||
|     WINE_CPU_TOPOLOGY DXVK_VER VKD3D_VER WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE | ||||
|     do | ||||
|         echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf" | ||||
|     done | ||||
| @@ -1315,7 +1328,8 @@ use_winetricks () { | ||||
| } | ||||
|  | ||||
| kill_wine () { | ||||
|     wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}') | ||||
|     wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' \ | ||||
|     | grep "$USER_WORK_PATH" | awk -F/ '{print $3}') | ||||
|  | ||||
|     for pw_kill_pids in ${wine_pids}; do | ||||
|         if ps cax | grep "${pw_kill_pids}" ; then | ||||
| @@ -1342,32 +1356,27 @@ init_database () { | ||||
|     if [[ "$WHDB_FILE" != "0" ]] ; then | ||||
|         print_info "Используется файл настроек: $WHDB_FILE" | ||||
|         . "$WHDB_FILE" | ||||
|     elif check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then | ||||
|     fi | ||||
|  | ||||
|     if check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then | ||||
|         print_info "Найдены настройки из предыдущего использования префикса: $WINEPREFIX" | ||||
|         cat "$WINEPREFIX/last.conf" | ||||
|         . "$WINEPREFIX/last.conf" | ||||
|     else | ||||
|         print_warning "Файл настроек не найден. Пропускаем." | ||||
|     fi | ||||
| } | ||||
|  | ||||
| prepair_wine () { | ||||
|     var_winedlloverride_update "winemenubuilder.exe=d" | ||||
|  | ||||
|     if [[ -n "$INSTALL_SCRIPT_NAME" ]] | ||||
|     then print_info "Используются настройки из скрипта установки: $INSTALL_SCRIPT_NAME" | ||||
|     else init_database | ||||
|     fi | ||||
|  | ||||
|     init_wine_ver | ||||
|     init_wineprefix | ||||
|     use_winetricks | ||||
|     init_dxvk "$DXVK_VER" | ||||
|     init_vkd3d "$VKD3D_VER" | ||||
|  | ||||
|     if init_wined3d ; then | ||||
|         : | ||||
|     else | ||||
|         init_dxvk "$DXVK_VER" | ||||
|         init_vkd3d "$VKD3D_VER" | ||||
|     fi | ||||
|     [[ "$MANGOHUD" == 1 ]] && MANGOHUD_RUN="mangohud" | ||||
| } | ||||
|  | ||||
| @@ -1408,6 +1417,12 @@ wine_run_install () { | ||||
| } | ||||
|  | ||||
| run_autoinstall () { | ||||
|     if [[ $WH_USE_GUI == "1" ]] \ | ||||
|     && [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]] | ||||
|     then print_ok "Соглашения приняты из графического интерфейса." | ||||
|     else print_license_agreement | ||||
|     fi | ||||
|  | ||||
|     if [[ $1 == "--clear-pfx" ]] ; then | ||||
|         export CLEAR_PREFIX="1" | ||||
|         shift | ||||
| @@ -1652,8 +1667,8 @@ select_wine_version() { | ||||
|         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 "Создание префикса отменено." | ||||
|                 exit 0 | ||||
|                 print_info "Операция отменена." | ||||
|                 return 1 | ||||
|             fi | ||||
|             local selected_opt | ||||
|             selected_opt="${selectable_options[$user_choice]}" | ||||
| @@ -1667,6 +1682,7 @@ select_wine_version() { | ||||
|             print_error "Неверный выбор. Введите число от 0 до $max_choice." | ||||
|         fi | ||||
|     done | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| create_prefix() { | ||||
| @@ -1716,7 +1732,7 @@ create_prefix() { | ||||
|         *) fatal "Неверный выбор. Операция отменена." ;; | ||||
|     esac | ||||
|  | ||||
|     select_wine_version | ||||
|     select_wine_version || exit 0 | ||||
|  | ||||
|     print_info "Выберите тип создаваемого префикса:" | ||||
|     echo " 0) Отмена создания префикса" | ||||
| @@ -1810,9 +1826,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 | ||||
|  | ||||
| @@ -2123,6 +2139,19 @@ select_component_version() { | ||||
|     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 | ||||
| @@ -2134,16 +2163,14 @@ run_install_dxvk() { | ||||
|     fi | ||||
|     check_prefix_var | ||||
|     init_database | ||||
|     export DXVK_VER="$version" | ||||
|     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" | ||||
|     if [[ "$DXVK_VER" == "none" ]] | ||||
|     then print_info "Удаление DXVK..." | ||||
|     else print_info "Установка DXVK: $DXVK_VER" | ||||
|     fi | ||||
|     init_dxvk "$DXVK_VER" | ||||
|     wait_wineserver | ||||
| } | ||||
|  | ||||
| @@ -2158,19 +2185,38 @@ run_install_vkd3d() { | ||||
|     fi | ||||
|     check_prefix_var | ||||
|     init_database | ||||
|     export VKD3D_VER="$version" | ||||
|     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" | ||||
|     if [[ "$VKD3D_VER" == "none" ]] | ||||
|     then print_info "Удаление VKD3D..." | ||||
|     else print_info "Установка VKD3D: $VKD3D_VER" | ||||
|     fi | ||||
|     init_vkd3d "$VKD3D_VER" | ||||
|     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 [команда] | ||||
|  | ||||
| @@ -2181,6 +2227,7 @@ wh_info () { | ||||
|  | ||||
|     install-dxvk [версия|none|list] установить, удалить или показать версии DXVK | ||||
|     install-vkd3d [версия|none|list] установить, удалить или показать версии VKD3D | ||||
|     change-wine [версия]            изменить версию Wine/Proton для текущего префикса | ||||
|  | ||||
|     installed                       список установленных программ | ||||
|     run [программа]                 запуск программы (отладка) | ||||
| @@ -2217,6 +2264,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 ;; | ||||
| @@ -2229,8 +2280,10 @@ 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 "$@" ;; | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| #!/usr/bin/env xdg-open | ||||
| [Desktop Entry] | ||||
| Name=WineHelper | ||||
| Exec=winehelper gui %F | ||||
| @@ -7,3 +8,4 @@ Type=Application | ||||
| Categories=WineHelper;Utility;Emulator; | ||||
| StartupNotify=true | ||||
| Icon=winehelper | ||||
| StartupWMClass=winehelper | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user