Compare commits

..

23 Commits

Author SHA1 Message Date
615bcdd95b speeding up the output of the install list 2025-07-09 12:44:13 +06:00
33a181fe4f Merge branch 'minergenon-refactor/simplify-desktop-parsing' 2025-07-08 11:40:03 +03:00
dfe41ea9c2 create_desktop: fixed nocopy 2025-07-08 11:38:03 +03:00
e649261ff9 refactor simplify desktop parsing 2025-07-08 14:22:57 +06:00
299ee7ed53 create_base_pfx: fixed create pfx to tmp 2025-07-08 11:11:13 +03:00
7c41d656aa check_installed_programs: updated run list 2025-07-08 10:49:52 +03:00
10707bd010 fixed names for t-flex desktop files 2025-07-08 09:21:07 +03:00
bd9d5b9561 unshare desktop directories 2025-07-08 09:20:05 +03:00
9caea05eb5 create_desktop: override name with arg4" 2025-07-08 08:42:14 +03:00
0bb88f6bff updated scripts: all t-flex programs 2025-07-07 20:17:14 +03:00
d238a37860 init_wine_ver: updated for new wine 10.3+ 2025-07-07 20:12:53 +03:00
fc6b2fb67d added WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE to last.conf 2025-07-07 19:28:12 +03:00
6ab84be100 added wine_wh_tflex_10-9_amd64 2025-07-07 19:25:05 +03:00
341b821442 added WH_USE_MESA_GL_OVERRIDE=1 for t-flex programs 2025-07-07 14:28:25 +03:00
63d24ae584 su_run: 3 attempts are added 2025-07-07 13:44:58 +03:00
f7450529c8 renamed: t-flex-doc17 -> t-flex-docs17 2025-07-07 13:02:23 +03:00
37234c25bf added WINEUSERNAME=xuser for new ALT wine 2025-07-07 12:59:52 +03:00
8601dd600f Oops. Forgot about zsh_completion in changelog. UPD 0.4.9 2025-07-04 09:43:22 +03:00
9df3940ec9 updated changelog to 0.4.8 2025-07-04 09:18:19 +03:00
f1315115c7 unpack: remove file if error 2025-07-04 09:12:40 +03:00
036957c729 Merge branch 'minergenon-daobit_programs_manualinstall_to_autoinstall' 2025-07-04 08:59:58 +03:00
c1791761d1 changes to the settings for installing daobit programs 2025-07-03 14:51:35 +06:00
7dae7c4739 daobit programs manualinstall to autoinstall 2025-07-03 14:46:09 +06:00
18 changed files with 206 additions and 172 deletions

View File

@ -1,5 +1,11 @@
История изменений: История изменений:
0.4.9:
* добавлено автодопонение команд для zsh (zsh_completion)
0.4.8:
* все скрипты для программ daobit-* переведены из ручных установок в автоматические
0.4.7: 0.4.7:
* обновлены скрипты установки и префикс для программ ved-* и ctm-* * обновлены скрипты установки и префикс для программ ved-* и ctm-*
* обновлены скрипты установки для программ daobit-* * обновлены скрипты установки для программ daobit-*

View File

@ -22,7 +22,7 @@ _winehelper_completions() {
return 0 return 0
;; ;;
run|installed) run|installed)
local installed=$(grep -h "Exec=env" ~/.local/share/winehelper/*.desktop 2>/dev/null | awk -F'/' '{print $NF}' | awk -F'"' '{print $1}') local installed=$(ls -1 ~/.local/share/winehelper/ | grep ".desktop" | sed 's/.desktop//')
COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") )
return 0 return 0
;; ;;

View File

@ -101,9 +101,7 @@ _get_list_for_install () {
_get_installed_list () { _get_installed_list () {
installed=( installed=(
${(f)"$(grep -h 'Exec=env' ~/.local/share/winehelper/*.desktop 2>/dev/null | ${(f)"$(ls -1 ~/.local/share/winehelper/ | grep ".desktop" | sed 's/.desktop//')"}
awk -F'/' '{print $NF}' |
awk -F'"' '{print $1}')"}
) )
if ((! ${#installed[@]} == 0 )); then if ((! ${#installed[@]} == 0 )); then

View File

@ -9,23 +9,22 @@ export BASE_PFX="daobit_pfx_x86_v01"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEARCH="win32" export WINEARCH="win32"
export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi" export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi"
AUTOINSTALL_EXE="${WH_TMP_DIR}/setup_cs.exe"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_cs" AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_cs"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_cs/SETUP.EXE" AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_cs/SETUP.EXE"
EXE_SETUP_NAME="setup_cs.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then prepair_wine
prepair_wine if try_download "https://files.daobit.ru/CSERVICE/SFX/setup_cs.exe" "${AUTOINSTALL_EXE}" ; then
# фикс постоянного запроса обновления Windows # фикс постоянного запроса обновления Windows
get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef" get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef"
unpack "$2" "${AUTOINSTALL_UNPACK}" unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\CSERVICE" /auto /hide wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\CSERVICE" /auto /hide
WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/CSERVICE/CService32.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/CSERVICE/CService32.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_dir "$AUTOINSTALL_UNPACK" try_remove_dir "$AUTOINSTALL_UNPACK"
else try_remove_file "$AUTOINSTALL_EXE"
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/$EXE_SETUP_NAME\""
fi fi

View File

@ -9,23 +9,22 @@ export BASE_PFX="daobit_pfx_x86_v01"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEARCH="win32" export WINEARCH="win32"
export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi" export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi"
AUTOINSTALL_EXE="${WH_TMP_DIR}/setup_rk.exe"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_rk" AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_rk"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_rk/setup.exe" AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_rk/setup.exe"
EXE_SETUP_NAME="setup_rk.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then prepair_wine
prepair_wine if try_download "https://files.daobit.ru/RATLAS/SFX/setup_rk.exe" "${AUTOINSTALL_EXE}" ; then
# фикс постоянного запроса обновления Windows # фикс постоянного запроса обновления Windows
get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef" get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef"
unpack "$2" "${AUTOINSTALL_UNPACK}" unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RAtlas" /auto /hide wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RAtlas" /auto /hide
WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RAtlas/ratlas.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RAtlas/ratlas.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_dir "$AUTOINSTALL_UNPACK" try_remove_dir "$AUTOINSTALL_UNPACK"
else try_remove_file "$AUTOINSTALL_EXE"
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/$EXE_SETUP_NAME\""
fi fi

View File

@ -9,23 +9,22 @@ export BASE_PFX="daobit_pfx_x86_v01"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEARCH="win32" export WINEARCH="win32"
export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi" export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi"
AUTOINSTALL_EXE="${WH_TMP_DIR}/setup_ri.exe"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_ri" AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_ri"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_ri/setup.exe" AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_ri/setup.exe"
EXE_SETUP_NAME="setup_ri.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then prepair_wine
prepair_wine if try_download "https://files.daobit.ru/RINFO/SFX/setup_ri.exe" "${AUTOINSTALL_EXE}" ; then
# фикс постоянного запроса обновления Windows # фикс постоянного запроса обновления Windows
get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef" get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef"
unpack "$2" "${AUTOINSTALL_UNPACK}" unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RInfo" /auto /hide wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RInfo" /auto /hide
WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RInfo/rinfo.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RInfo/rinfo.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_dir "$AUTOINSTALL_UNPACK" try_remove_dir "$AUTOINSTALL_UNPACK"
else try_remove_file "$AUTOINSTALL_EXE"
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/$EXE_SETUP_NAME\""
fi fi

View File

@ -9,23 +9,22 @@ export BASE_PFX="daobit_pfx_x86_v01"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEARCH="win32" export WINEARCH="win32"
export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi" export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi"
AUTOINSTALL_EXE="${WH_TMP_DIR}/setup_rt.exe"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_rt" AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_rt"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_rt/setup.exe" AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_rt/setup.exe"
EXE_SETUP_NAME="setup_rt.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then prepair_wine
prepair_wine if try_download "https://files.daobit.ru/RTARIFF/SFX/setup_rt.exe" "${AUTOINSTALL_EXE}" ; then
# фикс постоянного запроса обновления Windows # фикс постоянного запроса обновления Windows
get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef" get_and_set_reg_file --add 'Software\DAO\DAOSETUP' 'SkipKBCheck' 'REG_DWORD' "1" "userdef"
unpack "$2" "${AUTOINSTALL_UNPACK}" unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RTariff" /auto /hide wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\DAO\\\\RTariff" /auto /hide
WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RTariff/Tariff.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/RTariff/Tariff.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_dir "$AUTOINSTALL_UNPACK" try_remove_dir "$AUTOINSTALL_UNPACK"
else try_remove_file "$AUTOINSTALL_EXE"
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/$EXE_SETUP_NAME\""
fi fi

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX CAD Учебная Версия 17" export PROG_NAME="T-FLEX CAD Учебная Версия 17"
export PROG_ICON="tflexcad" export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек # prepair_wine используется из файла настроек
@ -33,5 +34,5 @@ if try_download "https://www.tflexcad.ru/download/t-flex-cad-free/files/TFCAD_ST
try_remove_dir "${WH_TMP_DIR}/Стандартные элементы 17" try_remove_dir "${WH_TMP_DIR}/Стандартные элементы 17"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD Учебная Версия 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD Учебная Версия 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCadEDU"
fi fi

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX CAD 17" export PROG_NAME="T-FLEX CAD 17"
export PROG_ICON="tflexcad" export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек # prepair_wine используется из файла настроек
@ -26,5 +27,5 @@ if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%2017.zip" "${AUTOIN
try_remove_file "${AUTOINSTALL_EXE}" try_remove_file "${AUTOINSTALL_EXE}"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCad"
fi fi

View File

@ -2,11 +2,12 @@
# info_ru: Приложения для T-FLEX CAD 17 (T-FLEX Анализ 17, T-FLEX Динамика 17, T-FLEX Зубчатые передачи 17, T-FLEX ЧПУ 17, T-FLEX Раскрой 17, T-FLEX Электротехника 17, T-FLEX VR 17, T-FLEX Печатные платы 17) # info_ru: Приложения для T-FLEX CAD 17 (T-FLEX Анализ 17, T-FLEX Динамика 17, T-FLEX Зубчатые передачи 17, T-FLEX ЧПУ 17, T-FLEX Раскрой 17, T-FLEX Электротехника 17, T-FLEX VR 17, T-FLEX Печатные платы 17)
######################################################################## ########################################################################
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export BASE_PFX="tflex17_pfx_x64_v01" export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64" export WINEARCH="win64"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
check_prefix_var check_prefix_var
if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]] if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]]

View File

@ -2,11 +2,12 @@
# info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 17 (Учебное пособие 17, Стандартные элементы 17, Элементы уплотнительной техники 17, Станочные приспособления 17, Детали штампов листовой штамповки 17, Детали пресс-форм 17, Примеры 17) # info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 17 (Учебное пособие 17, Стандартные элементы 17, Элементы уплотнительной техники 17, Станочные приспособления 17, Детали штампов листовой штамповки 17, Детали пресс-форм 17, Примеры 17)
######################################################################## ########################################################################
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export BASE_PFX="tflex17_pfx_x64_v01" export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64" export WINEARCH="win64"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
check_prefix_var check_prefix_var
if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]] if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]]

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX CAD 2D+ 17" export PROG_NAME="T-FLEX CAD 2D+ 17"
export PROG_ICON="tflexcad" export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек # prepair_wine используется из файла настроек
@ -26,5 +27,5 @@ if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%202D+%2017.zip" "${
try_remove_file "${AUTOINSTALL_EXE}" try_remove_file "${AUTOINSTALL_EXE}"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 2D+ 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 2D+ 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCad2D"
fi fi

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX DOCs 17" export PROG_NAME="T-FLEX DOCs 17"
export PROG_ICON="tflexdoc" export PROG_ICON="tflexdoc"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек # prepair_wine используется из файла настроек

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX Viewer 17" export PROG_NAME="T-FLEX Viewer 17"
export PROG_ICON="tflexcad" export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек # prepair_wine используется из файла настроек

View File

@ -2,13 +2,26 @@
# info_ru: Компоненты сервисов поддержки T-FLEX 17 # info_ru: Компоненты сервисов поддержки T-FLEX 17
######################################################################## ########################################################################
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export BASE_PFX="tflex17_pfx_x64_v01" export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64" export WINEARCH="win64"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export PROG_VERSION="" export PROG_VERSION=""
export WH_XDG_OPEN="log" 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" 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"
export WH_USE_MESA_GL_OVERRIDE="1"
# Компоненты поддержки T-FLEX PLM 17 (Linux)
AUTOINSTALL_ZIP_LIN="$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux.zip"
AUTOINSTALL_DIR_LIN="$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux"
AUTOINSTALL_REG_LIN="$AUTOINSTALL_DIR_LIN/Components/fake_hasp.reg"
# Компоненты поддержки T-FLEX PLM 17 (Windows)
AUTOINSTALL_ZIP_WIN="$WH_TMP_DIR/T-FLEX 17 Prerequisites.zip"
AUTOINSTALL_DIR_WIN="$WH_TMP_DIR/Компоненты поддержки T-FLEX 17"
AUTOINSTALL_EXE_WIN1="$AUTOINSTALL_DIR_WIN/Access Database Engine 2007/AccessDatabaseEngine.exe"
AUTOINSTALL_EXE_WIN_MSI="$AUTOINSTALL_DIR_WIN/Access Database Engine 2007"
AUTOINSTALL_EXE_WIN2="$AUTOINSTALL_DIR_WIN/TSC2/Setup_TSC2.msi"
prepair_wine prepair_wine
@ -28,41 +41,29 @@ else
|| ! systemctl list-units --type service --state running | grep hasplmd || ! systemctl list-units --type service --state running | grep hasplmd
then then
# Компоненты поддержки T-FLEX PLM 17 (Linux) # Компоненты поддержки T-FLEX PLM 17 (Linux)
AUTOINSTALL_ZIP_LIN="${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux.zip"
AUTOINSTALL_DIR_LIN="${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux"
AUTOINSTALL_EXE_LIN1="${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/fake_hasp.reg"
if try_download "https://www.tflex.ru/downloads/Prerequisites_T-FLEX_17_Linux.zip" "${AUTOINSTALL_ZIP_LIN}" ; then if try_download "https://www.tflex.ru/downloads/Prerequisites_T-FLEX_17_Linux.zip" "${AUTOINSTALL_ZIP_LIN}" ; then
unpack "${AUTOINSTALL_ZIP_LIN}" "${AUTOINSTALL_DIR_LIN}" unpack "$AUTOINSTALL_ZIP_LIN" "$AUTOINSTALL_DIR_LIN"
try_remove_file "$AUTOINSTALL_ZIP_LIN" "$WINELOADER" regedit "$AUTOINSTALL_REG_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi fi
if [[ "$BASE_PFX" == "none" ]] ; then if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки T-FLEX PLM 17 (Windows) # Компоненты поддержки T-FLEX PLM 17 (Windows)
AUTOINSTALL_ZIP_WIN="${WH_TMP_DIR}/T-FLEX 17 Prerequisites.zip"
AUTOINSTALL_DIRWIN="${WH_TMP_DIR}"
AUTOINSTALL_EXE_WIN1="${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/Access Database Engine 2007/AccessDatabaseEngine.exe"
AUTOINSTALL_EXE_WIN_MSY="${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/Access Database Engine 2007"
AUTOINSTALL_EXE_WIN2="${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/TSC2/Setup_TSC2.msi"
if try_download "https://www.tflex.ru/downloads/T-FLEX%2017%20Prerequisites.zip" "${AUTOINSTALL_ZIP_WIN}" ; then if try_download "https://www.tflex.ru/downloads/T-FLEX%2017%20Prerequisites.zip" "${AUTOINSTALL_ZIP_WIN}" ; then
unpack "${AUTOINSTALL_ZIP_WIN}" "${AUTOINSTALL_DIRWIN}" unpack "$AUTOINSTALL_ZIP_WIN" "$WH_TMP_DIR"
try_remove_file "$AUTOINSTALL_ZIP_WIN" unpack "$AUTOINSTALL_EXE_WIN1" "$AUTOINSTALL_EXE_WIN_MSI"
unpack "${AUTOINSTALL_EXE_WIN1}" "${AUTOINSTALL_EXE_WIN_MSY}" wine_run_install "$AUTOINSTALL_EXE_WIN_MSI/AceRedist.msi" /q
try_remove_file "$AUTOINSTALL_EXE_WIN1" wine_run_install "$AUTOINSTALL_EXE_WIN2" /q
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
fi fi
rm -fR "$DRIVE_C/Program Files/Common Files/System" rm -fR "$DRIVE_C/Program Files/Common Files/System"
rm -fR "$DRIVE_C/Program Files (x86)/Common Files/System" rm -fR "$DRIVE_C/Program Files (x86)/Common Files/System"
cp -r "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/Program Files/Common Files/System" "$DRIVE_C/Program Files/Common Files" cp -r "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/Program Files/Common Files/System" "$DRIVE_C/Program Files/Common Files"
cp -r "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/Program Files (x86)/Common Files/System" "$DRIVE_C/Program Files (x86)/Common Files" cp -r "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/Program Files (x86)/Common Files/System" "$DRIVE_C/Program Files (x86)/Common Files"
mv -f "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/Windows/System32/"*.dll "$DRIVE_C/windows/system32" mv -f "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/Windows/System32/"*.dll "$DRIVE_C/windows/system32"
"$WINELOADER" regedit "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/ado-32.reg" "$WINELOADER" regedit "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/ado-32.reg"
"$WINELOADER"64 regedit "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/ado-64.reg" "$WINELOADER"64 regedit "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/ado-64.reg"
"$WINELOADER" regedit "${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/Components/tflex.reg" "$WINELOADER" regedit "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/tflex.reg"
fi fi
if systemctl list-units --type service --state running | grep aksusbd \ if systemctl list-units --type service --state running | grep aksusbd \
@ -71,23 +72,27 @@ else
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..." print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else else
echo "#!/usr/bin/env bash echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/HASP_Linux/aksusbd/\" cd \"$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/HASP_Linux/aksusbd/\"
bash ./dinst bash ./dinst
mv -f \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/HASP_Linux/\"*.so /var/hasplm/ mv -f \"$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/HASP_Linux/\"*.so /var/hasplm/
systemctl restart hasplmd.service" > "${WH_TMP_DIR}/tflex17_aksusbd.sh" systemctl restart hasplmd.service" > "$WH_TMP_DIR/tflex17_aksusbd.sh"
chmod +x ${WH_TMP_DIR}/tflex17_aksusbd.sh chmod +x $WH_TMP_DIR/tflex17_aksusbd.sh
unset TFLEX_ERROR unset TFLEX_ERROR
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh" || TFLEX_ERROR=1 print_info "Будут установлены и запущены службы aksusbd и hasplmd."
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh" su_run "$WH_TMP_DIR/tflex17_aksusbd.sh" || TFLEX_ERROR=1
try_remove_file "$WH_TMP_DIR/tflex17_aksusbd.sh"
fi fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "$AUTOINSTALL_DIR_WIN"
if [[ $TFLEX_ERROR == "1" ]] ; then if [[ $TFLEX_ERROR == "1" ]] ; then
fatal "Произошла ошибка во время подготовки префикса, или установки компонентов ПО." fatal "Произошла ошибка во время подготовки префикса, или установки компонентов ПО."
else else
echo "t-flex-cad17-prepair" >> "$WINEPREFIX/winetricks.log" echo "t-flex-cad17-prepair" >> "$WINEPREFIX/winetricks.log"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
print_info "Подготовка префикса и установка компонентов завершены." print_info "Подготовка префикса и установка компонентов завершены."
fi fi
fi fi

View File

@ -3,11 +3,12 @@
######################################################################## ########################################################################
export PROG_NAME="T-FLEX CAD 17" export PROG_NAME="T-FLEX CAD 17"
export PROG_ICON="tflexcad" export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64" export WH_WINE_USE="wine_wh_tflex_10-9_amd64"
export WINEARCH="win64" export WINEARCH="win64"
export WH_WINDOWS_VER="10" export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17" export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log" export WH_XDG_OPEN="log"
export WH_USE_MESA_GL_OVERRIDE="1"
if [[ -f "$2" ]] ; then if [[ -f "$2" ]] ; then
# используем общий whdb файл для подготовки префикса и сервисов # используем общий whdb файл для подготовки префикса и сервисов

View File

@ -1,5 +1,6 @@
##### WINE ##### ##### WINE #####
009c95bfe2df3f9264c9c5092f3e30ea7a168dd7869046058a718a70739602d4 wine_wh_tflex_10-9_amd64.tar.xz
3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f wine_x_tkg_10-0_i586.tar.xz 3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f wine_x_tkg_10-0_i586.tar.xz
71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12 wine_x_tkg_10-0_amd64.tar.xz 71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12 wine_x_tkg_10-0_amd64.tar.xz
fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz

View File

@ -96,6 +96,7 @@ WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
check_variables WINEESYNC "0" check_variables WINEESYNC "0"
check_variables WINEFSYNC "0" check_variables WINEFSYNC "0"
check_variables WINEUSERNAME "xuser"
check_variables WINEARCH "win64" # or "win32" check_variables WINEARCH "win64" # or "win32"
check_variables WH_WINE_USE "wine_x_tkg_10-0_amd64" # or system check_variables WH_WINE_USE "wine_x_tkg_10-0_amd64" # or system
@ -141,8 +142,13 @@ fi
##### ROOT ##### ##### ROOT #####
su_run () { su_run () {
print_info "Для продолжения установки введите root пароль..." local i="1"
su - -c "$@" while [[ $i -le "3" ]] ; do
print_info "Для продолжения установки введите root пароль (попытка $i из 3)..."
su - -c "$@" && return 0
((i++))
done
return 1
} }
##### CHECK DEPENDENCIES ##### ##### CHECK DEPENDENCIES #####
@ -259,11 +265,13 @@ unpack () {
esac esac
create_new_dir "$2" create_new_dir "$2"
if [[ $skip_xattr == "1" ]] \ if [[ $skip_xattr == "1" ]] \
&& $command "$1" ${outarg}"$2" 2>&1 | grep -v "xattr" && $command "$1" ${outarg}"$2" 2>&1 | sed "/xattr/d"
then print_ok "Файл $1 распакован." then print_ok "Файл $1 распакован."
elif $command "$1" ${outarg}"$2" elif $command "$1" ${outarg}"$2"
then print_ok "Файл $1 распакован." then print_ok "Файл $1 распакован."
else fatal "Распаковать файл $1 не удалось!" else
try_remove_file "$1"
fatal "Распаковать файл $1 не удалось!"
fi fi
return 0 return 0
} }
@ -356,9 +364,9 @@ try_copy_other_dll_to_pfx_32() {
try_copy_wine_dll_to_pfx_64 () { try_copy_wine_dll_to_pfx_64 () {
if [[ "$WINEARCH" == "win64" ]] ; then if [[ "$WINEARCH" == "win64" ]] ; then
if [[ -d "${WINEDIR}/lib64/wine/x86_64-windows" ]] if [[ -d "$WINEDIR/lib64/wine/x86_64-windows" ]]
then WINE_BUILD_DLL_64="${WINEDIR}/lib64/wine/x86_64-windows" then WINE_BUILD_DLL_64="$WINEDIR/lib64/wine/x86_64-windows"
else WINE_BUILD_DLL_64="${WINEDIR}/lib64/wine" else WINE_BUILD_DLL_64="$WINEDIR/lib64/wine"
fi fi
cmp -s "$WINE_BUILD_DLL_64/$1" "${WINEPREFIX}/drive_c/windows/system32/$(basename $1)" && return 0 cmp -s "$WINE_BUILD_DLL_64/$1" "${WINEPREFIX}/drive_c/windows/system32/$(basename $1)" && return 0
try_copy_file "$WINE_BUILD_DLL_64/$1" "${WINEPREFIX}/drive_c/windows/system32/" && return 0 || return 1 try_copy_file "$WINE_BUILD_DLL_64/$1" "${WINEPREFIX}/drive_c/windows/system32/" && return 0 || return 1
@ -366,9 +374,9 @@ try_copy_wine_dll_to_pfx_64 () {
} }
try_copy_wine_dll_to_pfx_32() { try_copy_wine_dll_to_pfx_32() {
if [[ -d "${WINEDIR}/lib/wine/i386-windows" ]] if [[ -d "$WINEDIR/lib/wine/i386-windows" ]]
then WINE_BUILD_DLL_32="${WINEDIR}/lib/wine/i386-windows" then WINE_BUILD_DLL_32="$WINEDIR/lib/wine/i386-windows"
else WINE_BUILD_DLL_32="${WINEDIR}/lib/wine" else WINE_BUILD_DLL_32="$WINEDIR/lib/wine"
fi fi
if [[ "$WINEARCH" == "win64" ]] ; then if [[ "$WINEARCH" == "win64" ]] ; then
cmp -s "$WINE_BUILD_DLL_32/$1" "${WINEPREFIX}/drive_c/windows/syswow64/$1" && return 0 cmp -s "$WINE_BUILD_DLL_32/$1" "${WINEPREFIX}/drive_c/windows/syswow64/$1" && return 0
@ -425,10 +433,13 @@ var_ld_library_path_update () {
} }
create_desktop () { create_desktop () {
local name_desktop="$1" local name_desktop exe_file desktop_filename icon_file desktop_path
local exe_file="$2" name_desktop="$1"
local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")" exe_file="$2"
local icon_file 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" ]] if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$3" ]]
then icon_file="$3" then icon_file="$3"
elif [[ -f "$WH_IMAGE_PATH/$3.png" ]] elif [[ -f "$WH_IMAGE_PATH/$3.png" ]]
@ -485,7 +496,6 @@ create_desktop () {
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list" echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
fi fi
# создаем файл категории для меню # создаем файл категории для меню
create_new_dir "$HOME/.local/share/desktop-directories" create_new_dir "$HOME/.local/share/desktop-directories"
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
@ -520,14 +530,8 @@ EOF
update-desktop-database "$HOME/.local/share/applications" update-desktop-database "$HOME/.local/share/applications"
if [[ $4 != "nocopy" ]] ; then if [[ $4 != "nocopy" ]] ; then
if [[ -n $4 ]] ; then desktop_path="$(xdg-user-dir DESKTOP)"
local desktop_path="$(xdg-user-dir DESKTOP)/$4" print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
create_new_dir "$desktop_path"
print_info "В меню создан $desktop_filename.desktop и скопирован на рабочий стол в каталог $4"
else
local desktop_path="$(xdg-user-dir DESKTOP)"
print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
fi
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path" cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
else else
print_info "В меню создан $desktop_filename.desktop" print_info "В меню создан $desktop_filename.desktop"
@ -581,7 +585,7 @@ check_installed_programs () {
print_info "Список установленных программ:" print_info "Список установленных программ:"
check_installed_programs check_installed_programs
exit 1 exit 1
elif [[ "$EXE_PATH" =~ ${2}$ ]] ; then elif [[ "$desktop_file" =~ ${2}.desktop ]] ; then
export EXE_PATH export EXE_PATH
return 0 return 0
fi fi
@ -589,7 +593,8 @@ check_installed_programs () {
*) *)
if [[ -f "$EXE_PATH.whdb" ]] ; then if [[ -f "$EXE_PATH.whdb" ]] ; then
WH_INFO_RU="$(grep "info_ru:" "$EXE_PATH.whdb" | awk -F"info_ru: " '{print $2}')" WH_INFO_RU="$(grep "info_ru:" "$EXE_PATH.whdb" | awk -F"info_ru: " '{print $2}')"
printf "\E[36m%s $SCRIPT_NAME run $(basename "$EXE_PATH") - $(basename "$desktop_file") %s\e[0m\n" WH_PROG_NAME="$(grep "PROG_NAME" "$EXE_PATH.whdb" | awk -F"=" '{print $2}')"
printf "\E[36m%s $SCRIPT_NAME run $(basename "$desktop_file" .desktop) %s\e[0m- $WH_PROG_NAME\n"
echo -e "$WH_INFO_RU\n" echo -e "$WH_INFO_RU\n"
fi fi
;; ;;
@ -694,53 +699,49 @@ init_wine_ver () {
export WINEDIR="$WH_DIST_DIR/$WH_WINE_USE" export WINEDIR="$WH_DIST_DIR/$WH_WINE_USE"
if [[ ! -d "$WINEDIR" ]] ; then if [[ ! -d "$WINEDIR" ]] ; then
WINE_URL="$CLOUD_URL/$WH_WINE_USE.tar.xz" local wine_package="$WH_TMP_DIR/$WH_WINE_USE.tar.xz"
local WINE_PACKAGE="$WH_TMP_DIR/${WH_WINE_USE}.tar.xz" try_download "$CLOUD_URL/$WH_WINE_USE.tar.xz" "$wine_package" check256sum
if try_download "$WINE_URL" "$WINE_PACKAGE" check256sum \ unpack "$wine_package" "$WH_DIST_DIR/"
&& unpack "$WINE_PACKAGE" "$WH_DIST_DIR/" try_remove_file "$wine_package"
then
echo "$WH_WINE_USE" > "$WH_DIST_DIR/$WH_WINE_USE/version"
try_remove_file "$WINE_PACKAGE"
fi
fi fi
export WINE="${WINEDIR}/bin/wine" [[ ! -f "$WINEDIR/version" ]] && echo "$WH_WINE_USE" > "$WINEDIR/version"
export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver" export WINE="$WINEDIR/bin/wine"
export WINELOADER="$WINEDIR/bin/wine"
export WINESERVER="$WINEDIR/bin/wineserver"
if [[ -n "${PATH}" ]] if [[ -n "${PATH}" ]]
then export PATH="${WINEDIR}/bin:${PATH}" then export PATH="$WINEDIR/bin:${PATH}"
else export PATH="${WINEDIR}/bin" else export PATH="$WINEDIR/bin"
fi fi
if [[ -n "${LD_LIBRARY_PATH}" ]] var_ld_library_path_update "$WINEDIR/lib"
then export LD_LIBRARY_PATH="${WINEDIR}/lib:${LD_LIBRARY_PATH}" export WINEDLLPATH="$WINEDIR/lib/wine"
else export LD_LIBRARY_PATH="${WINEDIR}/lib"
if [[ ! -d "$WINEDIR/lib64/wine" ]] \
&& [[ -d "$WINEDIR/lib/wine/x86_64-unix" ]]
then
create_new_dir "$WINEDIR/lib64/"
try_force_link_dir "$WINEDIR/lib/wine/" "$WINEDIR/lib64/"
fi fi
export WINEDLLPATH="${WINEDIR}/lib/wine" if [[ -d "$WINEDIR/lib64" ]] \
&& [[ ! -L "$WINEDIR/lib64/wine" ]]
if [[ -d "${WINEDIR}/lib/gstreamer-1.0" ]] ; then then
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib/gstreamer-1.0" var_ld_library_path_update "$WINEDIR/lib64"
export WINEDLLPATH+=":$WINEDIR/lib64/wine"
fi fi
[[ ! -f "${WINEDIR}/version" ]] && echo "${WH_WINE_USE}" > "${WINEDIR}/version" if [[ -d "$WINEDIR/lib/gstreamer-1.0" ]] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0="$WINEDIR/lib/gstreamer-1.0"
if [[ ! -d "${WINEDIR}/lib64/wine" ]] && [[ -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then if [[ -d "$WINEDIR/lib64/gstreamer-1.0" ]] ; then
create_new_dir "${WINEDIR}/lib64/" export GST_PLUGIN_SYSTEM_PATH_1_0+=":$WINEDIR/lib64/gstreamer-1.0"
try_force_link_dir "${WINEDIR}/lib/wine/" "${WINEDIR}/lib64/"
fi
if [[ -d "${WINEDIR}/lib64" ]] ; then
export LD_LIBRARY_PATH+=":${WINEDIR}/lib64"
export WINEDLLPATH+=":${WINEDIR}/lib64/wine"
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0+=":${WINEDIR}/lib64/gstreamer-1.0"
fi fi
fi fi
if [[ $WH_USE_CPCSP_PROXY == "1" ]] \ if [[ $WH_USE_CPCSP_PROXY == "1" ]] \
&& ! grep -q "$CPCSP_PROXY_VER" "${WINEDIR}/cpcsp_proxy.ver" && ! grep -q "$CPCSP_PROXY_VER" "$WINEDIR/cpcsp_proxy.ver"
then then
CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER" CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER"
CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz" CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz"
@ -748,16 +749,16 @@ init_wine_ver () {
try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR" unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "${WINEDIR}/lib/wine/" cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "$WINEDIR/lib/wine/"
if [[ -d "${WINEDIR}/lib64" ]] ; then if [[ -d "$WINEDIR/lib64" ]] ; then
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"x86_64-* "${WINEDIR}/lib64/wine/" cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"x86_64-* "$WINEDIR/lib64/wine/"
fi fi
try_remove_dir "$WH_TMP_DIR/$CPCSP_PROXY_NAME" try_remove_dir "$WH_TMP_DIR/$CPCSP_PROXY_NAME"
echo "$CPCSP_PROXY_VER" > "${WINEDIR}/cpcsp_proxy.ver" echo "$CPCSP_PROXY_VER" > "$WINEDIR/cpcsp_proxy.ver"
fi fi
else else
# use system WINE # use system WINE
if ! rpm -q "wine" 1>/dev/null ; then if [[ ! -f "/usr/bin/wine" ]] ; then
fatal "system WINE - not found." fatal "system WINE - not found."
fi fi
export WINEDIR="/usr" export WINEDIR="/usr"
@ -938,6 +939,7 @@ init_wineprefix () {
fi fi
export DRIVE_C="$WINEPREFIX/drive_c" export DRIVE_C="$WINEPREFIX/drive_c"
export XUSER_PATH="$DRIVE_C/users/xuser"
if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then
create_new_dir "$WINEPREFIX" create_new_dir "$WINEPREFIX"
@ -967,10 +969,10 @@ init_wineprefix () {
print_info "Windows версия изменена на win${WH_WINDOWS_VER}" print_info "Windows версия изменена на win${WH_WINDOWS_VER}"
fi fi
if [[ -d "$DRIVE_C/users/xuser" ]] && [[ ! -d "$DRIVE_C/users/$USER" ]] if [[ -d "$XUSER_PATH" ]] && [[ ! -d "$DRIVE_C/users/$USER" ]]
then try_force_link_dir "$DRIVE_C/users/xuser" "$DRIVE_C/users/$USER" then try_force_link_dir "$XUSER_PATH" "$DRIVE_C/users/$USER"
elif [[ ! -d "$DRIVE_C/users/xuser" ]] && [[ -d "$DRIVE_C/users/$USER" ]] elif [[ ! -d "$XUSER_PATH" ]] && [[ -d "$DRIVE_C/users/$USER" ]]
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser" then try_force_link_dir "$DRIVE_C/users/$USER" "$XUSER_PATH"
fi fi
if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then
@ -979,18 +981,23 @@ init_wineprefix () {
wait_wineserver wait_wineserver
fi fi
if [[ -L "$XUSER_PATH/Desktop" ]]
then rm -f "$XUSER_PATH/Desktop"
fi
create_new_dir "$XUSER_PATH/Desktop"
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]] if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:" then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
fi fi
try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe" if [[ $WH_USE_MESA_GL_OVERRIDE == "1" ]] \
&& ! lspci | grep -i nvidia > /dev/null ; then
export MESA_GL_VERSION_OVERRIDE="3.3"
export MESA_GLSL_VERSION_OVERRIDE="330"
fi
# хак для XRDP сессии # хак для XRDP сессии
if [[ $DISPLAY == *:10.0 ]] ; then if [[ $DISPLAY == *:10.0 ]] ; then
if ! lspci | grep -i nvidia > /dev/null ; then
export MESA_GL_VERSION_OVERRIDE="3.3"
export MESA_GLSL_VERSION_OVERRIDE="330"
fi
print_warning "Обнаружена сессия XRDP, настраиваем реестр:" print_warning "Обнаружена сессия XRDP, настраиваем реестр:"
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'UseXRandR' 'REG_SZ' "N" "user" get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'UseXRandR' 'REG_SZ' "N" "user"
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'UseXVidMode' 'REG_SZ' "N" "user" get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'UseXVidMode' 'REG_SZ' "N" "user"
@ -1092,7 +1099,7 @@ init_wineprefix () {
echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf" echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf"
for var in WH_WINE_USE BASE_PFX WINEARCH WH_WINDOWS_VER WINEESYNC WINEFSYNC \ 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 \ STAGING_SHARED_MEMORY WINE_LARGE_ADDRESS_AWARE WH_USE_SHADER_CACHE WH_USE_WINE_DXGI \
WINE_CPU_TOPOLOGY USE_RENDERER DXVK_VER VKD3D_VER WINE_CPU_TOPOLOGY USE_RENDERER DXVK_VER VKD3D_VER WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE
do do
echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf" echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf"
done done
@ -1274,21 +1281,35 @@ run_autoinstall () {
export INSTALL_SCRIPT INSTALL_MODE export INSTALL_SCRIPT INSTALL_MODE
if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then
print_info "Список программ с возможностью автоматической установки:"
for list in $(ls "$WH_AUTOINSTALL_DIR") ; do list_install_scripts() {
AI_INFO="$(grep "info_ru:" "$WH_AUTOINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')" local dir="$1"
AI_PROGNAME="$(grep "PROG_NAME=" "$WH_AUTOINSTALL_DIR/$list" | awk -F"PROG_NAME=" '{print $2}')" local title="$2"
echo -e "\n$list - $AI_PROGNAME" [[ ! -d "$dir" ]] || [[ -z "$(ls -A "$dir" 2>/dev/null)" ]] && return
echo "$AI_INFO"
done print_info "$title"
awk '
FNR==1 {
if (progname) {
printf "\n%s - %s\n%s\n", filename, progname, info
}
progname=""; info=""; filename=FILENAME
sub(".*/", "", filename)
}
/info_ru:/ { sub(/.*info_ru: /, ""); info=$0 }
/PROG_NAME=/ { sub(/.*PROG_NAME=/, ""); progname=$0 }
END {
if (progname) {
printf "\n%s - %s\n%s\n", filename, progname, info
}
}
' "$dir"/*
}
list_install_scripts "$WH_AUTOINSTALL_DIR" "Список программ с возможностью автоматической установки:"
echo echo
print_info "Список программ с возможностью установки из существующего дистрибутива:" list_install_scripts "$WH_MANUALINSTALL_DIR" "Список программ с возможностью установки из существующего дистрибутива:"
for list in $(ls "$WH_MANUALINSTALL_DIR") ; do
AI_INFO="$(grep "info_ru:" "$WH_MANUALINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')"
AI_PROGNAME="$(grep "PROG_NAME=" "$WH_MANUALINSTALL_DIR/$list" | awk -F"PROG_NAME=" '{print $2}')"
echo -e "\n$list - $AI_PROGNAME"
echo "$AI_INFO"
done
elif [[ "$INSTALL_SCRIPT" != "0" ]] ; then elif [[ "$INSTALL_SCRIPT" != "0" ]] ; then
source "$INSTALL_SCRIPT" "$@" source "$INSTALL_SCRIPT" "$@"
print_info "Завершена установка $INSTALL_SCRIPT_NAME" print_info "Завершена установка $INSTALL_SCRIPT_NAME"
@ -1401,12 +1422,14 @@ create_base_pfx () {
export WINEPREFIX="$1" export WINEPREFIX="$1"
check_prefix_var check_prefix_var
local prefix_dir="$WINEPREFIX" local prefix_dir drive_c_dir users_dir archive_path
local drive_c_dir="$prefix_dir/drive_c" prefix_dir="$WINEPREFIX"
local users_dir="$drive_c_dir/users" drive_c_dir="$prefix_dir/drive_c"
local archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz" users_dir="$drive_c_dir/users"
archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz"
try_copy_dir "$prefix_dir" "${prefix_dir}_bak" try_copy_dir "$prefix_dir" "${prefix_dir}_bak"
create_new_dir "$WH_TMP_DIR/pfx/"
for wtlog in workaround isolate internal winxp win2 win7 win10 for wtlog in workaround isolate internal winxp win2 win7 win10
do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log" do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log"
@ -1576,10 +1599,7 @@ restore_prefix() {
print_info "Восстановление ярлыков для префикса $prefix_name..." print_info "Восстановление ярлыков для префикса $prefix_name..."
export RESTORE_FROM_BACKUP="1" # Устанавливаем флаг восстановления export RESTORE_FROM_BACKUP="1" # Устанавливаем флаг восстановления
while IFS='=' read -r line; do while IFS='=' read -r name_desktop exe_path icon_name ; do
local name_desktop=$(echo "$line" | cut -d'=' -f1)
local exe_path=$(echo "$line" | cut -d'=' -f2)
local icon_name=$(echo "$line" | cut -d'=' -f3)
local full_exe_path="$WH_PREFIXES_DIR/$prefix_name${exe_path}" local full_exe_path="$WH_PREFIXES_DIR/$prefix_name${exe_path}"
local full_icon_path="$WH_PREFIXES_DIR/$prefix_name/icons/$icon_name" local full_icon_path="$WH_PREFIXES_DIR/$prefix_name/icons/$icon_name"
@ -1613,7 +1633,7 @@ wh_info () {
install [скрипт] --clear-pfx не использовать готовый префикс для установки ПО install [скрипт] --clear-pfx не использовать готовый префикс для установки ПО
installed список установленных программ installed список установленных программ
run [программа.exe] запуск программы (отладка) run [программа] запуск программы (отладка)
remove-all удалить WineHelper и все связанные данные remove-all удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные remove-prefix [имя_префикса] удалить префикс и все связанные данные
backup-prefix [имя_префикса] создать резерную копию префикса backup-prefix [имя_префикса] создать резерную копию префикса