forked from CastroFidel/winehelper
Compare commits
12 Commits
add_prog_u
...
master
Author | SHA1 | Date | |
---|---|---|---|
a18c4684a7 | |||
0cca7b441d | |||
bda170017c | |||
42e822217b | |||
79d45b6f51 | |||
ae2d47b641 | |||
576f939ceb | |||
c9e4cb23b7 | |||
f17b354ca3 | |||
3d28dc2758 | |||
b403934966 | |||
ea621f0402 |
13
CHANGELOG
13
CHANGELOG
@ -1,5 +1,18 @@
|
||||
История изменений:
|
||||
|
||||
0.5.2:
|
||||
* исправлен запуск winehelper.desktop для winehelper-qt
|
||||
|
||||
0.5.1:
|
||||
* добавлена функция извлечения иконки из .exe файлов
|
||||
* добавлен вывод истории изменений командой: winehelper --changelog
|
||||
* добавлен графический режим Qt5 (альфа версия)
|
||||
* обновлены скрипты для совместной работы с графическим режимом
|
||||
* обновлены скрипты установок для t-flex-* (добавлена поддержка grdcontrol)
|
||||
* добавлены ссылки на официальные сайты устанавливаемых приложений
|
||||
* обновлены функции создания и восстановления резервных копий префиков
|
||||
* добавлены иконки для приложения WineHelper
|
||||
|
||||
0.5.0:
|
||||
* добавлен явный вывод отказа от ответственности и соглашения с ним
|
||||
* обновлены все скрипты для установки t-flex-*
|
||||
|
@ -11,12 +11,13 @@ 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 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"
|
||||
# Компоненты поддержки T-FLEX PLM (Linux)
|
||||
GRDCONTROL_VER="4.3.0-0"
|
||||
AUTOINSTALL_ZIP_LIN="$WH_TMP_DIR/Prerequisites_T-FLEX_Linux.zip"
|
||||
AUTOINSTALL_DIR_LIN="$WH_TMP_DIR/Prerequisites_T-FLEX_Linux"
|
||||
AUTOINSTALL_REG_LIN="$AUTOINSTALL_DIR_LIN/Components/fake_hasp.reg"
|
||||
|
||||
# Компоненты поддержки T-FLEX PLM 17 (Windows)
|
||||
# Компоненты поддержки T-FLEX PLM (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"
|
||||
@ -26,28 +27,35 @@ AUTOINSTALL_EXE_WIN2="$AUTOINSTALL_DIR_WIN/TSC2/Setup_TSC2.msi"
|
||||
prepair_wine
|
||||
|
||||
if [[ -d "$WINEPREFIX" ]] \
|
||||
&& grep -q "t-flex-cad17-prepair" "$WINEPREFIX/winetricks.log" \
|
||||
&& grep -q "t-flex-cad" "$WINEPREFIX/winetricks.log" \
|
||||
&& systemctl list-units --type service --state running | grep aksusbd \
|
||||
&& systemctl list-units --type service --state running | grep hasplmd
|
||||
&& systemctl list-units --type service --state running | grep hasplmd \
|
||||
&& rpm -q grdcontrol | grep -q "$GRDCONTROL_VER"
|
||||
then
|
||||
print_info "Префикс $PREFIX_NAME готов к установке ПО."
|
||||
print_info "Сервисы: aksusbd и hasplmd уже запущены."
|
||||
print_info "Сервисы: aksusbd и hasplmd уже запущены. grdcontrol-$GRDCONTROL_VER установлен."
|
||||
else
|
||||
print_warning "Службы aksusbd и hasplmd не запущены, или префикс не подготовлен"
|
||||
print_info "Запускаем подготовку префикса скриптом: t-flex-cad17-prepair"
|
||||
print_warning "Службы aksusbd и hasplmd не запущены, или grdcontrol-$GRDCONTROL_VER не установлен."
|
||||
|
||||
if [[ "$BASE_PFX" == "none" ]] \
|
||||
|| ! systemctl list-units --type service --state running | grep aksusbd \
|
||||
|| ! systemctl list-units --type service --state running | grep hasplmd
|
||||
|| ! systemctl list-units --type service --state running | grep hasplmd \
|
||||
|| ! rpm -q grdcontrol | grep -q "$GRDCONTROL_VER"
|
||||
then
|
||||
# Компоненты поддержки T-FLEX PLM 17 (Linux)
|
||||
if try_download "https://www.tflex.ru/downloads/Prerequisites_T-FLEX_17_Linux.zip" "${AUTOINSTALL_ZIP_LIN}" ; then
|
||||
# Компоненты поддержки T-FLEX PLM (Linux)
|
||||
if try_download "https://www.tflex.ru/downloads/Prerequisites_T-FLEX_Linux.zip" "${AUTOINSTALL_ZIP_LIN}" ; then
|
||||
unpack "$AUTOINSTALL_ZIP_LIN" "$AUTOINSTALL_DIR_LIN"
|
||||
"$WINELOADER" regedit "$AUTOINSTALL_REG_LIN"
|
||||
fi
|
||||
|
||||
if rpm -q grdcontrol | grep -q "$GRDCONTROL_VER"
|
||||
then print_info "grdcontrol-$GRDCONTROL_VER уже установлен в системе."
|
||||
else su_run rpm -iv "$AUTOINSTALL_DIR_LIN/Guardant_Linux/grdcontrol.x86_64.rpm"
|
||||
fi
|
||||
|
||||
if [[ "$BASE_PFX" == "none" ]] ; then
|
||||
# Компоненты поддержки T-FLEX PLM 17 (Windows)
|
||||
print_info "Запускаем подготовку префикса."
|
||||
# Компоненты поддержки T-FLEX PLM (Windows)
|
||||
if try_download "https://www.tflex.ru/downloads/T-FLEX%2017%20Prerequisites.zip" "${AUTOINSTALL_ZIP_WIN}" ; then
|
||||
unpack "$AUTOINSTALL_ZIP_WIN" "$WH_TMP_DIR"
|
||||
unpack "$AUTOINSTALL_EXE_WIN1" "$AUTOINSTALL_EXE_WIN_MSI"
|
||||
@ -57,13 +65,18 @@ else
|
||||
fi
|
||||
rm -fR "$DRIVE_C/Program Files/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 (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"
|
||||
|
||||
"$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" regedit "$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/Components/tflex.reg"
|
||||
cp -r "$AUTOINSTALL_DIR_LIN/Components/Program Files/Common Files/System" \
|
||||
"$DRIVE_C/Program Files/Common Files"
|
||||
cp -r "$AUTOINSTALL_DIR_LIN/Components/Program Files (x86)/Common Files/System" \
|
||||
"$DRIVE_C/Program Files (x86)/Common Files"
|
||||
|
||||
mv -f "$AUTOINSTALL_DIR_LIN/Components/Windows/System32/"*.dll \
|
||||
"$DRIVE_C/windows/system32"
|
||||
|
||||
"$WINELOADER" regedit "$AUTOINSTALL_DIR_LIN/Components/ado-32.reg"
|
||||
"$WINELOADER"64 regedit "$AUTOINSTALL_DIR_LIN/Components/ado-64.reg"
|
||||
"$WINELOADER" regedit "$AUTOINSTALL_DIR_LIN/Components/tflex.reg"
|
||||
fi
|
||||
|
||||
if systemctl list-units --type service --state running | grep aksusbd \
|
||||
@ -72,15 +85,15 @@ else
|
||||
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
|
||||
else
|
||||
echo "#!/usr/bin/env bash
|
||||
cd \"$WH_TMP_DIR/Prerequisites_T-FLEX_17_Linux/HASP_Linux/aksusbd/\"
|
||||
cd \"$AUTOINSTALL_DIR_LIN/HASP_Linux/aksusbd/\"
|
||||
bash ./dinst
|
||||
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"
|
||||
chmod +x $WH_TMP_DIR/tflex17_aksusbd.sh
|
||||
mv -f \"$AUTOINSTALL_DIR_LIN/HASP_Linux/\"*.so /var/hasplm/
|
||||
systemctl restart hasplmd.service" > "$WH_TMP_DIR/tflex_aksusbd.sh"
|
||||
chmod +x "$WH_TMP_DIR/tflex_aksusbd.sh"
|
||||
unset TFLEX_ERROR
|
||||
print_info "Будут установлены и запущены службы aksusbd и hasplmd."
|
||||
su_run "$WH_TMP_DIR/tflex17_aksusbd.sh" || TFLEX_ERROR=1
|
||||
try_remove_file "$WH_TMP_DIR/tflex17_aksusbd.sh"
|
||||
su_run "$WH_TMP_DIR/tflex_aksusbd.sh" || TFLEX_ERROR=1
|
||||
try_remove_file "$WH_TMP_DIR/tflex_aksusbd.sh"
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -90,7 +103,7 @@ else
|
||||
if [[ $TFLEX_ERROR == "1" ]] ; then
|
||||
fatal "Произошла ошибка во время подготовки префикса, или установки компонентов ПО."
|
||||
else
|
||||
echo "t-flex-cad17-prepair" >> "$WINEPREFIX/winetricks.log"
|
||||
echo "t-flex-cad-prepair" >> "$WINEPREFIX/winetricks.log"
|
||||
try_remove_file "$AUTOINSTALL_ZIP_LIN"
|
||||
try_remove_file "$AUTOINSTALL_ZIP_WIN"
|
||||
print_info "Подготовка префикса и установка компонентов завершены."
|
||||
|
76
winehelper
76
winehelper
@ -180,13 +180,17 @@ fi
|
||||
|
||||
##### ROOT #####
|
||||
su_run () {
|
||||
local i="1"
|
||||
while [[ $i -le "3" ]] ; do
|
||||
print_info "Для продолжения установки введите root пароль (попытка $i из 3)..."
|
||||
su - -c "$@" && return 0
|
||||
((i++))
|
||||
done
|
||||
return 1
|
||||
if [[ $WH_USE_GUI != "1" ]] ; then
|
||||
local i="1"
|
||||
while [[ $i -le "3" ]] ; do
|
||||
print_info "Для продолжения установки введите root пароль (попытка $i из 3)..."
|
||||
su - -c "$@" && return 0
|
||||
((i++))
|
||||
done
|
||||
else
|
||||
pkexec "$@" && return 0
|
||||
fi
|
||||
fatal "Не удалось установить необходимые компоненты!"
|
||||
}
|
||||
|
||||
##### CHECK DEPENDENCIES #####
|
||||
@ -1568,12 +1572,13 @@ backup_prefix() {
|
||||
export WINEPREFIX="$1"
|
||||
check_prefix_var
|
||||
|
||||
local backup_base_dir="$(xdg-user-dir DESKTOP)"
|
||||
local backup_archive_name="backup_${PREFIX_NAME}_$(date +%Y.%m.%d).whpack"
|
||||
local backup_dest_path="$backup_base_dir/$backup_archive_name"
|
||||
local temp_backup_dir="$WH_TMP_DIR/backup_${PREFIX_NAME}_$(date +%Y.%m.%d)"
|
||||
local temp_prefix_dir="$temp_backup_dir/prefixes/$PREFIX_NAME"
|
||||
local temp_users_dir="$temp_prefix_dir/drive_c/users"
|
||||
local backup_base_dir backup_archive_name backup_dest_path temp_backup_dir temp_prefix_dir temp_users_dir
|
||||
backup_base_dir="$(xdg-user-dir DESKTOP)"
|
||||
backup_archive_name="backup_${PREFIX_NAME}_$(date +%d.%m.%Y-%H.%M.%S).whpack"
|
||||
backup_dest_path="$backup_base_dir/$backup_archive_name"
|
||||
temp_backup_dir="$WH_TMP_DIR/backup_${PREFIX_NAME}_$(date +%d.%m.%Y-%H.%M.%S)"
|
||||
temp_prefix_dir="$temp_backup_dir/prefixes/$PREFIX_NAME"
|
||||
temp_users_dir="$temp_prefix_dir/drive_c/users"
|
||||
|
||||
print_info "Начало резервного копирования префикса: $PREFIX_NAME"
|
||||
create_new_dir "$temp_backup_dir"
|
||||
@ -1617,9 +1622,11 @@ backup_prefix() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# Сохраняем метаданные внутри временной директории
|
||||
echo "$PREFIX_NAME" > "$temp_backup_dir/prefix_name.whmeta"
|
||||
|
||||
print_info "Создание squashfs архива..."
|
||||
if mksquashfs "$temp_backup_dir" "$backup_dest_path" -comp zstd ; then
|
||||
echo -e "\n# PREFIX_NAME=$PREFIX_NAME" >> "$backup_dest_path"
|
||||
print_ok "Архив префикса $PREFIX_NAME успешно создан по пути:\n$backup_dest_path"
|
||||
else
|
||||
print_error "Не удалось создать архив префикса $PREFIX_NAME."
|
||||
@ -1651,15 +1658,7 @@ restore_prefix() {
|
||||
|
||||
print_info "Восстановление из резервной копии: $backup_archive_path"
|
||||
|
||||
prefix_name="$(tail -n1 "$backup_archive_path" | sed -e 's/.*PREFIX_NAME=//')"
|
||||
|
||||
if [[ -d "$WH_PREFIXES_DIR/$prefix_name" ]] ; then
|
||||
fatal "Префикс $prefix_name уже существует!
|
||||
Удалите его, если действительно желаете восстановить префикс заново.
|
||||
Команда для удаления: $SCRIPT_NAME remove-prefix $prefix_name"
|
||||
fi
|
||||
|
||||
temp_extract_dir="$WH_TMP_DIR/restore_$(basename "$backup_archive_path" .whpack)"
|
||||
temp_extract_dir="$WH_TMP_DIR/restore_$(basename "$backup_archive_path" .whpack)_$$"
|
||||
create_new_dir "$temp_extract_dir"
|
||||
|
||||
print_info "Распаковка архива..."
|
||||
@ -1670,9 +1669,32 @@ restore_prefix() {
|
||||
fatal "Не удалось распаковать архив."
|
||||
fi
|
||||
|
||||
if [[ -d "$temp_extract_dir/prefixes" ]] ; then
|
||||
local prefix_name
|
||||
prefix_name="$(ls -1 "$temp_extract_dir/prefixes")"
|
||||
# Определяем имя префикса
|
||||
if [[ -f "$temp_extract_dir/prefix_name.whmeta" ]]; then
|
||||
prefix_name="$(cat "$temp_extract_dir/prefix_name.whmeta")"
|
||||
try_remove_file "$temp_extract_dir/prefix_name.whmeta"
|
||||
elif grep -q "PREFIX_NAME=" "$backup_archive_path" ; then
|
||||
# Обратная совместимость со старыми бэкапами (с приписанной строкой)
|
||||
prefix_name="$(tail -n1 "$backup_archive_path" | sed -e 's/.*PREFIX_NAME=//')"
|
||||
elif [[ -d "$temp_extract_dir/prefixes" ]] && [[ $(find "$temp_extract_dir/prefixes" -mindepth 1 -maxdepth 1 -type d | wc -l) -eq 1 ]]; then
|
||||
# Обратная совместимость со старыми бэкапами (по имени каталога)
|
||||
prefix_name="$(basename "$(find "$temp_extract_dir/prefixes" -mindepth 1 -maxdepth 1 -type d)")"
|
||||
else
|
||||
try_remove_dir "$temp_extract_dir"
|
||||
fatal "Не удалось определить имя префикса в архиве (метаданные не найдены)."
|
||||
fi
|
||||
|
||||
if [[ -z "$prefix_name" ]]; then
|
||||
try_remove_dir "$temp_extract_dir"
|
||||
fatal "Не удалось определить имя префикса в архиве."
|
||||
fi
|
||||
|
||||
if [[ -d "$WH_PREFIXES_DIR/$prefix_name" ]] ; then
|
||||
try_remove_dir "$temp_extract_dir"
|
||||
fatal "Префикс $prefix_name уже существует!\n Удалите его, если действительно желаете восстановить префикс заново.\n Команда для удаления: $SCRIPT_NAME remove-prefix $prefix_name"
|
||||
fi
|
||||
|
||||
if [[ -d "$temp_extract_dir/prefixes/$prefix_name" ]] ; then
|
||||
local prefix_dir="$temp_extract_dir/prefixes/$prefix_name"
|
||||
|
||||
print_info "Восстановление префикса: $prefix_name"
|
||||
@ -1711,7 +1733,7 @@ restore_prefix() {
|
||||
fi
|
||||
else
|
||||
try_remove_dir "$temp_extract_dir"
|
||||
fatal "Директория prefixes не найдена в архиве."
|
||||
fatal "Директория префикса '$prefix_name' не найдена в архиве."
|
||||
fi
|
||||
|
||||
try_remove_dir "$temp_extract_dir"
|
||||
|
9
winehelper.desktop
Normal file
9
winehelper.desktop
Normal file
@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=WineHelper
|
||||
Exec=winehelper gui %F
|
||||
Comment=Launching the graphics interface for Winehelper
|
||||
Comment[ru]=Запуск графического интерфейса WineHelper
|
||||
Type=Application
|
||||
Categories=WineHelper;Utility;Emulator;
|
||||
StartupNotify=true
|
||||
Icon=winehelper
|
1530
winehelper_gui.py
Normal file
1530
winehelper_gui.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user