Compare commits
56 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d5f337e6b4 | ||
|
904c9c9895 | ||
|
1d4ee1fd70 | ||
|
02a2256c8c | ||
|
cbcdba204e | ||
|
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
|
||||
|
231
winehelper
231
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" \
|
||||
@@ -123,6 +126,12 @@ WH_TESTINSTALL_DIR="$DATA_PATH/testinstall"
|
||||
WH_WINETRICKS="$DATA_PATH/winetricks_$WINETRICKS_VERSION"
|
||||
|
||||
WH_MENU_DIR="$HOME/.local/share/applications/WineHelper"
|
||||
|
||||
# TODO: system menu directory
|
||||
# /usr/share/desktop-directories/WineHelper.directory
|
||||
# /etc/xdg/menus/applications-merged/WineHelper.menu
|
||||
|
||||
# user menu directory
|
||||
WH_MENU_CATEGORY="$HOME/.local/share/desktop-directories/WineHelper.directory"
|
||||
WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
|
||||
|
||||
@@ -159,12 +168,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 +399,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 +625,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 +661,7 @@ create_desktop () {
|
||||
[Desktop Entry]
|
||||
Type=Directory
|
||||
Name=WineHelper
|
||||
Icon=wine
|
||||
Icon=winehelper
|
||||
EOF
|
||||
fi
|
||||
|
||||
@@ -690,9 +702,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 +770,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 +797,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 +836,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 +858,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 +911,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 +1114,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 +1187,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 +1210,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 +1284,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 +1334,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 +1362,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 +1423,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 +1673,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 +1688,7 @@ select_wine_version() {
|
||||
print_error "Неверный выбор. Введите число от 0 до $max_choice."
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
create_prefix() {
|
||||
@@ -1716,7 +1738,7 @@ create_prefix() {
|
||||
*) fatal "Неверный выбор. Операция отменена." ;;
|
||||
esac
|
||||
|
||||
select_wine_version
|
||||
select_wine_version || exit 0
|
||||
|
||||
print_info "Выберите тип создаваемого префикса:"
|
||||
echo " 0) Отмена создания префикса"
|
||||
@@ -1810,9 +1832,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 +2145,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 +2169,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 +2191,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 +2233,7 @@ wh_info () {
|
||||
|
||||
install-dxvk [версия|none|list] установить, удалить или показать версии DXVK
|
||||
install-vkd3d [версия|none|list] установить, удалить или показать версии VKD3D
|
||||
change-wine [версия] изменить версию Wine/Proton для текущего префикса
|
||||
|
||||
installed список установленных программ
|
||||
run [программа] запуск программы (отладка)
|
||||
@@ -2217,6 +2270,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 +2286,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