forked from CastroFidel/winehelper
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a8e0fdce0a | ||
|
da3d5cd7af | ||
|
3ee499c758 | ||
|
6286cccbab | ||
|
e8d462b665 | ||
|
a817d1a6f5 | ||
|
e1fc25bb72 | ||
|
7c90da2088 | ||
|
108316148a |
@@ -62,8 +62,8 @@ fi
|
|||||||
if try_download "https://scadhelp.ru/files/10/download" "${AUTOINSTALL_EXE}" ; then
|
if try_download "https://scadhelp.ru/files/10/download" "${AUTOINSTALL_EXE}" ; then
|
||||||
create_new_dir "$DRIVE_C/SDATA"
|
create_new_dir "$DRIVE_C/SDATA"
|
||||||
create_new_dir "$DRIVE_C/SWORK"
|
create_new_dir "$DRIVE_C/SWORK"
|
||||||
export WINE_WIN_START=""
|
# временно запрещаем запуск hasplms.exe, hasplmv.exe для успешного завершения установки
|
||||||
var_winedlloverride_update "hasplms.exe,hasplmv.exe=d"
|
tmp_winedlloverride_update "hasplms.exe,hasplmv.exe=d"
|
||||||
wine_run_install "$AUTOINSTALL_EXE"
|
wine_run_install "$AUTOINSTALL_EXE"
|
||||||
try_remove_file "$AUTOINSTALL_EXE"
|
try_remove_file "$AUTOINSTALL_EXE"
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 18 (Учебное пособие 18, Стандартные элементы 18, Примеры 17)
|
# info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 18 (Учебное пособие 18, Стандартные элементы 18, Примеры 18)
|
||||||
########################################################################
|
########################################################################
|
||||||
export PROG_URL="https://www.tflexcad.ru"
|
export PROG_URL="https://www.tflexcad.ru"
|
||||||
export PROG_NAME="Ресурсы для T-FLEX CAD 18"
|
export PROG_NAME="Ресурсы для T-FLEX CAD 18"
|
||||||
|
142
winehelper
142
winehelper
@@ -31,6 +31,7 @@ else
|
|||||||
LICENSE_FILE="$DATA_PATH/LICENSE"
|
LICENSE_FILE="$DATA_PATH/LICENSE"
|
||||||
AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT"
|
AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT"
|
||||||
THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY"
|
THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY"
|
||||||
|
WH_DEVEL="1"
|
||||||
|
|
||||||
# минимальная проверка синтаксиса скриптов
|
# минимальная проверка синтаксиса скриптов
|
||||||
for self_check_script in "$RUN_SCRIPT" \
|
for self_check_script in "$RUN_SCRIPT" \
|
||||||
@@ -101,16 +102,6 @@ else
|
|||||||
check_variables DXVK_NVAPI_LOG_LEVEL "none"
|
check_variables DXVK_NVAPI_LOG_LEVEL "none"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $WINEDEBUG != "-all" ]] ; then
|
|
||||||
log_dir="$HOME/winehelper_backup_log"
|
|
||||||
mkdir -p "$log_dir"
|
|
||||||
export LOG_FILE="$log_dir/winehelper.log"
|
|
||||||
date > "$LOG_FILE"
|
|
||||||
print_warning "Включен режим логирования работы WINE."
|
|
||||||
print_warning "Лог будет сохранен по пути: $LOG_FILE"
|
|
||||||
sleep 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
##### WINETRICKS VERSION #####
|
##### WINETRICKS VERSION #####
|
||||||
WINETRICKS_VERSION="20250102"
|
WINETRICKS_VERSION="20250102"
|
||||||
|
|
||||||
@@ -485,6 +476,10 @@ var_winedlloverride_update () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tmp_winedlloverride_update () {
|
||||||
|
var_winedlloverride_update "$1"
|
||||||
|
}
|
||||||
|
|
||||||
var_dxvk_config_update () {
|
var_dxvk_config_update () {
|
||||||
if [[ -n "${DXVK_CONFIG}" ]]
|
if [[ -n "${DXVK_CONFIG}" ]]
|
||||||
then export DXVK_CONFIG="${1};${DXVK_CONFIG}"
|
then export DXVK_CONFIG="${1};${DXVK_CONFIG}"
|
||||||
@@ -1348,23 +1343,25 @@ kill_wine () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_database () {
|
init_database () {
|
||||||
WHDB_FILE="0"
|
local whdb_file="0"
|
||||||
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
if [[ -n "$WIN_FILE_EXEC" ]] \
|
||||||
|
&& [[ -f "$WIN_FILE_EXEC" ]]
|
||||||
|
then
|
||||||
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
||||||
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
||||||
WHDB_FILE="$WIN_FILE_EXEC".whdb
|
whdb_file="$WIN_FILE_EXEC".whdb
|
||||||
else
|
else
|
||||||
orig_IFS="$IFS" && IFS=$'\n'
|
orig_IFS="$IFS" && IFS=$'\n'
|
||||||
if WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )" ; then
|
if WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )" ; then
|
||||||
WHDB_FILE="$WH_FIND_DB_FILE"
|
whdb_file="$WH_FIND_DB_FILE"
|
||||||
fi
|
fi
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$WHDB_FILE" != "0" ]] ; then
|
if [[ "$whdb_file" != "0" ]] ; then
|
||||||
print_info "Используется файл настроек: $WHDB_FILE"
|
print_info "Используется файл настроек: $whdb_file"
|
||||||
. "$WHDB_FILE"
|
. "$whdb_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then
|
if check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then
|
||||||
@@ -1390,23 +1387,56 @@ prepair_wine () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wine_run () {
|
wine_run () {
|
||||||
if [[ $WINEARCH == "win32" ]] \
|
local wh_add_args win_file_exec
|
||||||
&& file "$WIN_FILE_EXEC" | grep -q "x86-64"
|
|
||||||
then fatal "Нельзя запустить 64-битное приложение в 32-битном префиксе!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
WIN_FILE_PATH="$(dirname "$WIN_FILE_EXEC")"
|
if [[ $1 =~ (winecfg|regedit|winefile|wineconsole) ]] ; then
|
||||||
[[ -d "$WIN_FILE_PATH" ]] && cd "$WIN_FILE_PATH"
|
win_file_exec="$1"
|
||||||
|
win_file_name="$win_file_exec"
|
||||||
|
wh_add_args=""
|
||||||
|
elif [[ -f "$1" ]] ; then
|
||||||
|
local win_file_path win_file_name
|
||||||
|
win_file_exec="$(readlink -f "$1")"
|
||||||
|
win_file_path="$(dirname "$win_file_exec")"
|
||||||
|
win_file_name="$(basename "$win_file_exec")"
|
||||||
|
|
||||||
if [[ -n $LOG_FILE ]] && [[ -f "$LOG_FILE" ]] ; then
|
case "${win_file_name,,}" in
|
||||||
echo "##### Основные переменные #####" | tee -a "$LOG_FILE"
|
*.exe) wh_add_args="$WINE_WIN_START" ;;
|
||||||
env | grep -e "WH_" -e "WINE" -e "DXVK" -e "VKD3D" | tee -a "$LOG_FILE"
|
*.msi) wh_add_args="msiexec /i" ;;
|
||||||
|
*.bat|*.cmd) wh_add_args="" ;;
|
||||||
|
*) fatal "Не удалось запустить файл $1. Проверьте расширение файла." ;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "##### Лог WINE #####" | tee -a "$LOG_FILE"
|
if [[ $WINEARCH == "win32" ]] \
|
||||||
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$LOG_FILE"
|
&& file "$win_file_exec" | grep -q "x86-64"
|
||||||
|
then fatal "Нельзя запустить 64-битное приложение в 32-битном префиксе!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$win_file_path"
|
||||||
else
|
else
|
||||||
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS
|
fatal "Команда введена не правильно или не найден исполняемый файл $1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [[ $WINEDEBUG != "-all" ]] ; then
|
||||||
|
local log_dir log_file
|
||||||
|
log_dir="$HOME/winehelper_backup_log"
|
||||||
|
log_file="$log_dir/${PREFIX_NAME}_${win_file_name%.*}.log"
|
||||||
|
create_new_dir "$log_dir"
|
||||||
|
date > "$log_file"
|
||||||
|
|
||||||
|
print_warning "Включен режим логирования работы WINE."
|
||||||
|
print_warning "Лог будет сохранен по пути: $log_file"
|
||||||
|
|
||||||
|
echo "##### Основные переменные #####" | tee -a "$log_file"
|
||||||
|
env | grep -e "WH_" -e "WINE" -e "DXVK" -e "VKD3D" | tee -a "$log_file"
|
||||||
|
|
||||||
|
echo "##### Лог WINE #####" | tee -a "$log_file"
|
||||||
|
$MANGOHUD_RUN "$WINELOADER" $wh_add_args "$win_file_exec" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$log_file"
|
||||||
|
else
|
||||||
|
$MANGOHUD_RUN "$WINELOADER" $wh_add_args "$win_file_exec" "$@" $LAUNCH_PARAMETERS
|
||||||
|
fi
|
||||||
|
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1415,14 +1445,11 @@ wine_run_install () {
|
|||||||
if [[ "$INSTALL_MODE" == "manual" ]]
|
if [[ "$INSTALL_MODE" == "manual" ]]
|
||||||
then print_warning "Рекомендуется не менять пути для установки приложения!"
|
then print_warning "Рекомендуется не менять пути для установки приложения!"
|
||||||
fi
|
fi
|
||||||
[[ ! -f "$1" ]] && fatal "Нет файла для установки: $1"
|
|
||||||
case "${1,,}" in
|
if [[ ! -f "$1" ]]
|
||||||
*.exe) wine_run $WINE_WIN_START "$@" ;;
|
then fatal "Нет файла для установки: $1"
|
||||||
*.msi) wine_run msiexec /i "$@" ;;
|
else wine_run "$@"
|
||||||
*.bat|*.cmd) wine_run "$@" ;;
|
fi
|
||||||
*) fatal "Не удалось запустить файл $1. Проверьте расширение файла." ;;
|
|
||||||
esac
|
|
||||||
wait_wineserver
|
|
||||||
}
|
}
|
||||||
|
|
||||||
run_autoinstall () {
|
run_autoinstall () {
|
||||||
@@ -2151,20 +2178,21 @@ select_component_version() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
run_install_to_prefix() {
|
run_install_to_prefix() {
|
||||||
export WINEPREFIX="$1"
|
if [[ -z "$1" ]] || [[ -z "$2" ]] || [[ -f "$2" ]] ; then
|
||||||
local WIN_FILE_EXEC="$2"
|
|
||||||
|
|
||||||
if [[ -z "$WINEPREFIX" ]] || [[ -z "$WIN_FILE_EXEC" ]]; then
|
|
||||||
fatal "Использование: $SCRIPT_NAME install-to-prefix <имя_префикса> <путь_к_установщику>"
|
fatal "Использование: $SCRIPT_NAME install-to-prefix <имя_префикса> <путь_к_установщику>"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export WINEPREFIX="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
check_prefix_var
|
check_prefix_var
|
||||||
prepair_wine
|
prepair_wine
|
||||||
wine_run_install "$WIN_FILE_EXEC"
|
wine_run "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_install_dxvk() {
|
run_install_dxvk() {
|
||||||
local version="$1"
|
local version="$1"
|
||||||
|
|
||||||
if [[ -z "$version" ]] ; then
|
if [[ -z "$version" ]] ; then
|
||||||
version=$(select_component_version "DXVK")
|
version=$(select_component_version "DXVK")
|
||||||
[[ $? -ne 0 ]] && print_info "Установка DXVK отменена." && return
|
[[ $? -ne 0 ]] && print_info "Установка DXVK отменена." && return
|
||||||
@@ -2172,21 +2200,27 @@ run_install_dxvk() {
|
|||||||
list_component_versions "DXVK"
|
list_component_versions "DXVK"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_prefix_var
|
check_prefix_var
|
||||||
init_database
|
init_database
|
||||||
|
|
||||||
export DXVK_VER="$version"
|
export DXVK_VER="$version"
|
||||||
|
|
||||||
init_wine_ver
|
init_wine_ver
|
||||||
init_wineprefix
|
init_wineprefix
|
||||||
|
|
||||||
if [[ "$DXVK_VER" == "none" ]]
|
if [[ "$DXVK_VER" == "none" ]]
|
||||||
then print_info "Удаление DXVK..."
|
then print_info "Удаление DXVK..."
|
||||||
else print_info "Установка DXVK: $DXVK_VER"
|
else print_info "Установка DXVK: $DXVK_VER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
init_dxvk "$DXVK_VER"
|
init_dxvk "$DXVK_VER"
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
}
|
}
|
||||||
|
|
||||||
run_install_vkd3d() {
|
run_install_vkd3d() {
|
||||||
local version="$1"
|
local version="$1"
|
||||||
|
|
||||||
if [[ -z "$version" ]] ; then
|
if [[ -z "$version" ]] ; then
|
||||||
version=$(select_component_version "VKD3D")
|
version=$(select_component_version "VKD3D")
|
||||||
[[ $? -ne 0 ]] && print_info "Установка VKD3D отменена." && return
|
[[ $? -ne 0 ]] && print_info "Установка VKD3D отменена." && return
|
||||||
@@ -2194,15 +2228,20 @@ run_install_vkd3d() {
|
|||||||
list_component_versions "VKD3D"
|
list_component_versions "VKD3D"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_prefix_var
|
check_prefix_var
|
||||||
init_database
|
init_database
|
||||||
|
|
||||||
export VKD3D_VER="$version"
|
export VKD3D_VER="$version"
|
||||||
|
|
||||||
init_wine_ver
|
init_wine_ver
|
||||||
init_wineprefix
|
init_wineprefix
|
||||||
|
|
||||||
if [[ "$VKD3D_VER" == "none" ]]
|
if [[ "$VKD3D_VER" == "none" ]]
|
||||||
then print_info "Удаление VKD3D..."
|
then print_info "Удаление VKD3D..."
|
||||||
else print_info "Установка VKD3D: $VKD3D_VER"
|
else print_info "Установка VKD3D: $VKD3D_VER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
init_vkd3d "$VKD3D_VER"
|
init_vkd3d "$VKD3D_VER"
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
}
|
}
|
||||||
@@ -2221,9 +2260,7 @@ run_change_wine_version() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
init_wine_ver
|
init_wine_ver
|
||||||
|
|
||||||
init_wineprefix
|
init_wineprefix
|
||||||
|
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
print_ok "Версия Wine для префикса $PREFIX_NAME успешно изменена на $WH_WINE_USE."
|
print_ok "Версия Wine для префикса $PREFIX_NAME успешно изменена на $WH_WINE_USE."
|
||||||
}
|
}
|
||||||
@@ -2263,7 +2300,8 @@ create_new_dir "$WH_DIST_DIR"
|
|||||||
create_new_dir "$WH_PREFIXES_DIR"
|
create_new_dir "$WH_PREFIXES_DIR"
|
||||||
create_new_dir "$WH_VULKAN_LIBDIR"
|
create_new_dir "$WH_VULKAN_LIBDIR"
|
||||||
|
|
||||||
if [[ -d "$HOME/.local/share/$SCRIPT_NAME" ]] \
|
if [[ $WH_DEVEL != "1" ]] \
|
||||||
|
&& [[ -d "$HOME/.local/share/$SCRIPT_NAME" ]] \
|
||||||
&& [[ ! -L "$HOME/.winehelper" ]]
|
&& [[ ! -L "$HOME/.winehelper" ]]
|
||||||
then try_force_link_dir "$HOME/.local/share/$SCRIPT_NAME" "$HOME/.winehelper"
|
then try_force_link_dir "$HOME/.local/share/$SCRIPT_NAME" "$HOME/.winehelper"
|
||||||
fi
|
fi
|
||||||
@@ -2309,12 +2347,14 @@ case "$arg1" in
|
|||||||
WIN_FILE_EXEC="$(readlink -f "$arg1")"
|
WIN_FILE_EXEC="$(readlink -f "$arg1")"
|
||||||
WIN_FILE_NAME="$(basename "$WIN_FILE_EXEC")"
|
WIN_FILE_NAME="$(basename "$WIN_FILE_EXEC")"
|
||||||
find_prefix "$WIN_FILE_EXEC"
|
find_prefix "$WIN_FILE_EXEC"
|
||||||
case "${WIN_FILE_NAME,,}" in
|
prepair_wine
|
||||||
*.exe) prepair_wine ; wine_run $WINE_WIN_START "$WIN_FILE_EXEC" "$@" ;;
|
|
||||||
*.msi) prepair_wine ; wine_run msiexec /i "$WIN_FILE_EXEC" "$@" ;;
|
if [[ -n "$1" ]] && [[ -f "$1" ]] ; then
|
||||||
*.bat|*.cmd) prepair_wine ; wine_run start "$WIN_FILE_EXEC" "$@" ;;
|
WIN_OPEN_FILE="$("$WINELOADER" winepath -w "$1")"
|
||||||
*) fatal "Тип файла не поддерживается." ;;
|
shift
|
||||||
esac
|
fi
|
||||||
|
|
||||||
|
wine_run "$WIN_FILE_EXEC" "$@" "$WIN_OPEN_FILE"
|
||||||
else
|
else
|
||||||
print_error "Команды $arg1 не существует."
|
print_error "Команды $arg1 не существует."
|
||||||
wh_info
|
wh_info
|
||||||
|
@@ -3660,7 +3660,7 @@ class WineHelperGUI(QMainWindow):
|
|||||||
msg_box.setText(
|
msg_box.setText(
|
||||||
"Приложение будет запущено в режиме отладки.\n\n"
|
"Приложение будет запущено в режиме отладки.\n\n"
|
||||||
"После закрытия приложения лог будет сохранен в папке 'winehelper_backup_log' "
|
"После закрытия приложения лог будет сохранен в папке 'winehelper_backup_log' "
|
||||||
"в вашем домашнем каталоге под именем 'winehelper.log'."
|
"в вашем домашнем каталоге под именем программы (например, 'program.log')."
|
||||||
)
|
)
|
||||||
msg_box.addButton(yes_button, QMessageBox.YesRole)
|
msg_box.addButton(yes_button, QMessageBox.YesRole)
|
||||||
msg_box.addButton(no_button, QMessageBox.NoRole)
|
msg_box.addButton(no_button, QMessageBox.NoRole)
|
||||||
|
Reference in New Issue
Block a user