Compare commits

..

24 Commits

Author SHA1 Message Date
625472f1be updated changelog to 0.4.4 2025-06-19 16:33:38 +03:00
fc7374fb54 t-flex-cad17: used only one settings file and fixed open log 2025-06-19 16:22:06 +03:00
dac6ec13dc updated hack XRDP for session 2025-06-19 16:05:39 +03:00
fdc9de705b unpack: fatal if error 2025-06-19 15:20:55 +03:00
b9d1987b01 t-flex-cad: updated all scripts 2025-06-19 13:39:19 +03:00
1a589f3b52 wine_run_install: fixed name files for install 2025-06-19 13:36:17 +03:00
9ed6a4d61e try_download: fixed url with space 2025-06-19 13:09:10 +03:00
57a77b608d used unpack in all scripts 2025-06-19 13:07:30 +03:00
6b5d7736b6 added minimal self check 2025-06-19 12:20:10 +03:00
6ad9d1a47f unpack: added exe and zip 2025-06-19 11:41:52 +03:00
d09b1a3439 Merge branch 'minergenon-doptflex' 2025-06-19 11:15:24 +03:00
aca10b71fe updated changelog to 0.4.3 2025-06-18 17:14:02 +03:00
9c332106c3 fixed first update prefix 2025-06-18 17:13:04 +03:00
fe8f384681 updated changelog to 0.4.2 2025-06-18 16:50:52 +03:00
b46728e2e2 added check users for backup and recovery pfx 2025-06-18 16:46:38 +03:00
8ba7c99b45 updated changelog to 0.4.1 2025-06-18 14:32:44 +03:00
37f4f26495 remove_prefix: added check prefix path 2025-06-18 14:04:16 +03:00
499260b5dc remove_prefix: used check_prefix_var function 2025-06-18 13:45:50 +03:00
3033f6022a backup: check prefix before unpack 2025-06-18 13:31:09 +03:00
f7d189fa53 one shift for args in main case 2025-06-17 19:47:39 +03:00
53fc21806e updated backup and recovery pfx 2025-06-17 19:14:09 +03:00
5d3fe940d2 Merge branch 'minergenon-backup_and_recovery_pfx' 2025-06-17 14:50:25 +03:00
c5538b4c14 backup and recovery pfx 2025-06-12 21:31:56 +06:00
fbe8944a0f autoinstall: added t-flex-cad17-applications, t-flex-cad17-resources 2025-05-26 17:28:58 +06:00
37 changed files with 585 additions and 609 deletions

View File

@ -1,5 +1,35 @@
История изменений:
0.4.4:
* добавлены/обновлены скрипты установки:
winehelper install t-flex-cad17 - "T-FLEX CAD 17"
winehelper install t-flex-doc17 - "T-FLEX DOCs 17"
winehelper install t-flex-cad2d+17 - "T-FLEX CAD 2D+ 17"
winehelper install t-flex-cad-edu17 - "T-FLEX CAD Учебная Версия 17"
winehelper install t-flex-viewer17 - "T-FLEX Viewer 17"
winehelper install t-flex-cad17-applications
Приложения для 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)
winehelper install t-flex-cad17-resources
Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 17 (Учебное пособие 17, Стандартные элементы 17, Элементы уплотнительной техники 17, Станочные приспособления 17, Детали штампов листовой штамповки 17, Детали пресс-форм 17, Примеры 17)
* добавлена ручная установка дополнений для T-FLEX CAD 17:
winehelper install t-flex-cad17-manual "/путь/до/файла"
0.4.3:
* исправлено обновление префикса при первом запуске
0.4.2:
* исправлено создание и восстановление резервных копий с разными именами пользователей
0.4.1:
* добавлена возможность создания резервной копии префикса:
winehelper backup-prefix [имя_префикса]
* добавлена возможность восстановления резервной копии префикса:
winehelper restore-prefix "путь/до/резервной_копии.whpack"
* создание и восстановление резервной копии префикса включает в себя требуемую версиею WINE и информацию для создания .desktop файлов (ярлыков), что дает возможность переноса префикса на ПК без доступа к интернету
0.4.0:
* добавлена автоматическая установка и настройка wine-cpcsp_proxy при
использовании переменной WH_USE_CPCSP_PROXY=1

163
README.md
View File

@ -1,163 +0,0 @@
<div align="center">
<h1 align="center">WineHelper</h1>
<p align="center">WineHelper - предназначен для упрощения установки windows-приложений, с помощью подготовленных скриптов, в разные префиксы и используя портативные версии wine для максимальной повторяемости на различных системах, начиная с релиза p10 Alt Linux и выше.</p>
</div>
## Установка
```
su -
apt-get update && apt-get dist-upgrade
apt-get install winehelper
exit
```
## Использование WineHelper
### Список приложений для установки
Для вывода списка доступных к установке приложений:
```
winehelper install list
```
либо использовать сокращенную команду:
```
winehelper -i
```
### Запуск установки приложений
В списках есть 2 вида установщиков:
**Список программ с возможностью автоматической установки** - содержит полностью автоматизированные скрипты установок программ у которых есть дистрибутивы (установщики) в свободном доступе.
Пример:
```
winehelper install spravki-bk
```
либо использовать сокращенную команду:
```
winehelper -i spravki-bk
```
**Список программ с возможностью установки из существующего дистрибутива** - содержит скрипты установок для программ которых нет в свободном доступе.
Пример:
```sh
winehelper install is-record-station "/путь/до/установочногоайла"
```
либо использовать сокращенную команду:
```sh
winehelper -i is-record-station "/путь/до/установочногоайла"
```
### Процесс установки приложений
1. при первом запуске winehelper произойдет проверка на дополнительные зависимости и при необходимости будет запрос ввода root пароля для установки пакетов
2. далее будет предложено принять лицензионные соглашения использования сторонних компонентов, для продолжения нажмите любую клавишу на клавиатуре
3. на данном этапе, в большей части скриптов, всё устанавливается автоматически с подробным выводом информации в терминале:
- загрузка необходимой версии wine, с последующей проверкой хэш-суммы
- загрузка базового префикса, с последующей проверкой хэш-суммы
- первичные обновление и подготовка префикса
- скачивание дистрибутива (установщика) программы с официального сайта
- установка программы
- создание desktop файла (ярлыка) на рабочем столе и в меню
Если устанавливаемое приложение требует дополнительных действий от пользователя, об этом будет явно написано в терминале.
### Процесс удаления префикса с приложением
Выполняем команду:
```sh
winehelper remove-prefix
```
и видим список префиксов доступных для удаления, например:
```sh
winehelper remove-prefix spravki-bk
```
после подтверждения клавишей "y" полностью удалит префикс с ПО и desktop файлы (ярлыки)
### Процесс удаления WineHelper
Выполняем команду:
```sh
winehelper remove-all
```
после подтверждения клавишей "y" данная команда удалить WineHelper и все связанные данные (префиксы, ярлыки, wine, прогаммы установленные с помощью WineHelper)
### Процесс создания резервной копии префикса
Выполняем команду:
```sh
winehelper backup-prefix "имя префикса"
```
команда создаст резервную копию префикса на рабочем столе в виде архива backup_имя_префикса_год.месяц.цисло.whpack
### Процесс восстановления резервной копии префикса
Выполняем команду:
```sh
winehelper restore-prefix "/путь/к/архиву.whpack"
```
команда восстановит префикс из резервной копии а также desktop файлы и фалы меню
### Дополнительные команды
```sh
winehelper help
```
Вывод:
<pre>
Использование: $SCRIPT_NAME [команда]
Команды:
install list список возможных установочных скриптов
install [скрипт] запустить скрипт установки программы
install [скрипт] --clear-pfx не использовать подготовленный префикс для установки ПО
installed список установленных программ
run [программа.exe] запуск программы (отладка)
remove-all удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные
backup-prefix [имя_префикса] создать резервную копию префикса
restore-prefix [имя_префикса] восстановить префикс из резервной копии
Параметры:
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
</pre>
## 🛠 Участие в разработке
Мы рады вашим Pull Request'ам! Вот как можно помочь:
1. **Сообщить о баге или предложить улучшение**
Откройте [Задачи](https://git.linux-gaming.ru/CastroFidel/winehelper/issues), опишите проблему или идею.
2. **Исправить баг или добавить функционал**
- Форкните репозиторий
- Создайте ветку (`git checkout -b feature/ваша-фича`)
- Закоммитьте изменения (`git commit -m 'Добавил ...'`)
- Запушьте в форк (`git push origin feature/ваша-фича`)
- Откройте Pull Request
3. **Помощь с документацией**
Исправления в документации тоже приветствуются!
Перед началом работы обсудите вашу идею в [Задачи](https://git.linux-gaming.ru/CastroFidel/winehelper/issues), чтобы избежать дублирования.

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/expert${ALTA_VERSION}/setup.exe"
prepair_wine
if try_download "https://www1.alta.ru/pub/packets/distr/expert${ALTA_VERSION}.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/gtdw280125/setup.exe"
prepair_wine
if try_download "https://www2.alta.ru/pub/packets/distr/gtdw280125.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/maximum${ALTA_VERSION}/setup.exe"
prepair_wine
if try_download "https://www2.alta.ru/pub/packets/distr/maximum${ALTA_VERSION}.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/ordw030225/setup.exe"
prepair_wine
if try_download "https://www2.alta.ru/pub/packets/distr/ordw030225.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/taxwin040225/setup.exe"
prepair_wine
if try_download "https://www2.alta.ru/pub/packets/distr/taxwin040225.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/zapwin040225/setup.exe"
prepair_wine
if try_download "https://www1.alta.ru/pub/packets/distr/zapwin040225.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_fn"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_fn/setup.exe"
if try_download "https://files.ctm.ru/FINANCE/SFX/setup_fn.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\FINANCE" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_jr"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_jr/setup.exe"
if try_download "https://files.ctm.ru/JOURNALS/SFX/setup_jr.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\JOURNALS" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_me"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_me/setup.exe"
if try_download "https://files.ctm.ru/MONITOR_ED/SFX/setup_me.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\MONITOR_ED" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_rp"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_rp/setup.exe"
if try_download "https://ftp.ctm.ru/REPORT/SFX/setup_rp.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\REPORT" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_cs"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_cs/setup.exe"
if try_download "https://files.ctm.ru/CSERVICE/SFX/setup_cs.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\CSERVICE" /auto /hide

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/Easymnemo/EasyMnemo.msi"
prepair_wine
if try_download "https://s.siteapi.org/c6e311629e736a8.ru/docs/j3pdl4vxv5wkg0sg0ksks40k8ss0sc" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /q

View File

@ -16,7 +16,7 @@ AUTOINSTALL_SETUP="${WH_TMP_DIR}/SpravkiBk/SpravkiBk-2-5-5-2275-Internet.msi"
prepair_wine
if try_download "https://spravki-bk.ru/wp-content/uploads/СПО-Справки-БК-(версия-2.5.5)-от-31.01.2024.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /q

View File

@ -2,75 +2,16 @@
# info_ru: Учебная версия. САПР, объединяющая в себе мощные параметрические возможности 2D и 3D-моделирования со средствами создания и оформления чертежей и конструкторской документации по ЕСКД.
########################################################################
export PROG_NAME="T-FLEX CAD Учебная Версия 17"
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
export PROG_ICON="tflexcad"
export INSTALL_DLL="corefonts d3dcompiler_47 dotnet48 vcrun2019 ucrtbase2019 msxml6 fontsmooth=rgb baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
prepair_wine
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_LIN}" -o"${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_WIN}" -o"${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
7z x -y "${AUTOINSTALL_EXE_WIN1}" -o"${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh"
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
# Программа T-FLEX CAD Учебная Версия
export AUTOINSTALL_ZIP="${WH_TMP_DIR}/TFCAD_ST_17x64_PACK.zip"
@ -80,7 +21,7 @@ export AUTOINSTALL_COMPONENTS="${WH_TMP_DIR}/Компоненты поддерж
export AUTOINSTALL_ELEMENTS="${WH_TMP_DIR}/Стандартные элементы 17/Стандартные элементы 17.msi"
if try_download "https://www.tflexcad.ru/download/t-flex-cad-free/files/TFCAD_ST_17x64_PACK.zip" "${AUTOINSTALL_ZIP}" ; then
7z x -y "${AUTOINSTALL_ZIP}" -o"${AUTOINSTALL_DIR}"
unpack "${AUTOINSTALL_ZIP}" "${AUTOINSTALL_DIR}"
try_remove_file "${AUTOINSTALL_ZIP}"
wine_run_install "${AUTOINSTALL_EDUCATION}" /q

View File

@ -2,75 +2,16 @@
# info_ru: Профессиональная САПР, объединяющая в себе мощные параметрические возможности 2D и 3D-моделирования со средствами создания и оформления чертежей и конструкторской документации по ЕСКД.
########################################################################
export PROG_NAME="T-FLEX CAD 17"
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
export PROG_ICON="tflexcad"
export INSTALL_DLL="corefonts d3dcompiler_47 dotnet48 vcrun2019 ucrtbase2019 msxml6 fontsmooth=rgb baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
prepair_wine
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_LIN}" -o"${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_WIN}" -o"${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
7z x -y "${AUTOINSTALL_EXE_WIN1}" -o"${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh"
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
# Программа T-FLEX CAD
export AUTOINSTALL_ZIP="${WH_TMP_DIR}/T-FLEX CAD 17.zip"
@ -78,7 +19,7 @@ export AUTOINSTALL_DIR="${WH_TMP_DIR}"
export AUTOINSTALL_EXE="${WH_TMP_DIR}/T-FLEX CAD 17/T-FLEX CAD 17.msi"
if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%2017.zip" "${AUTOINSTALL_ZIP}" ; then
7z x -y "${AUTOINSTALL_ZIP}" -o"${AUTOINSTALL_DIR}"
unpack "${AUTOINSTALL_ZIP}" "${AUTOINSTALL_DIR}"
try_remove_file "${AUTOINSTALL_ZIP}"
wine_run_install "${AUTOINSTALL_EXE}" /q

View File

@ -0,0 +1,50 @@
#!/usr/bin/env bash
# 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_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
check_prefix_var
if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]]
then fatal "Изначально установите T-FLEX CAD 17."
fi
BASE_URL="https://www.tflex.ru/downloads"
FILES=(
"T-FLEX Analysis 17.zip"
"T-FLEX Dynamics 17.zip"
"T-FLEX Gears 17.zip"
"T-FLEX CAM 17.zip"
"T-FLEX Nesting 17.zip"
"T-FLEX Electrical 17.zip"
"T-FLEX VR 17.zip"
"T-FLEX Circuits 17.zip"
)
UNPACK_APP="${WH_TMP_DIR}/unpack_applications"
prepair_wine
# Скачивание всех файлов
for file_name in "${FILES[@]}" ; do
local output="${WH_TMP_DIR}/${file_name// /_}"
if try_download "$BASE_URL/$file_name" "$output" ; then
unpack "$output" "${UNPACK_APP}"
fi
try_remove_file "$output"
done
# Установка .msi файлов
for msi_file in "${UNPACK_APP}"/*/*.msi ; do
if [[ -f "$msi_file" ]] ; then
wine_run_install "$msi_file" /q
else
fatal "Нет .msi файлов для установки в ${UNPACK_APP}/*."
fi
done
try_remove_dir "${UNPACK_APP}"

View File

@ -0,0 +1,49 @@
#!/usr/bin/env bash
# info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 17 (Учебное пособие 17, Стандартные элементы 17, Элементы уплотнительной техники 17, Станочные приспособления 17, Детали штампов листовой штамповки 17, Детали пресс-форм 17, Примеры 17)
########################################################################
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
check_prefix_var
if [[ ! -f "$WINEPREFIX/drive_c/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" ]]
then fatal "Изначально установите T-FLEX CAD 17."
fi
BASE_URL="https://www.tflex.ru/downloads"
FILES=(
"T-FLEX Tutorial 17.zip"
"Standard parts 17.zip"
"Elements of sealing technology 17.zip"
"Machine tools 17.zip"
"Standard parts for sheet metal dies 17.zip"
"Standard Mold Parts 17.zip"
"Examples 17.zip"
)
UNPACK_RESOURCES="${WH_TMP_DIR}/unpack_resources"
prepair_wine
# Скачивание всех файлов
for file_name in "${FILES[@]}" ; do
local output="${WH_TMP_DIR}/${file_name// /_}"
if try_download "$BASE_URL/$file_name" "$output" ; then
unpack "$output" "$UNPACK_RESOURCES"
fi
try_remove_file "$output"
done
# Установка .msi файлов
for msi_file in "${UNPACK_RESOURCES}"/*/*.msi ; do
if [[ -f "$msi_file" ]] ; then
wine_run_install "$msi_file" /q
else
fatal "Нет .msi файлов для установки в ${UNPACK_RESOURCES}/unpack_dop/*."
fi
done
try_remove_dir "${UNPACK_RESOURCES}"

View File

@ -2,75 +2,16 @@
# info_ru: Профессиональная САПР, объединяющая в себе мощные параметрические возможности 2D и 3D-моделирования со средствами создания и оформления чертежей и конструкторской документации по ЕСКД.
########################################################################
export PROG_NAME="T-FLEX CAD 2D+ 17"
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
export PROG_ICON="tflexcad"
export INSTALL_DLL="corefonts d3dcompiler_47 dotnet48 vcrun2019 ucrtbase2019 msxml6 fontsmooth=rgb baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
prepair_wine
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_LIN}" -o"${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_WIN}" -o"${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
7z x -y "${AUTOINSTALL_EXE_WIN1}" -o"${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh"
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
# Программа T-FLEX CAD 2D+ 17
export AUTOINSTALL_ZIP="${WH_TMP_DIR}/T-FLEX CAD 2D+ 17.zip"
@ -78,7 +19,7 @@ export AUTOINSTALL_DIR="${WH_TMP_DIR}"
export AUTOINSTALL_EXE="${WH_TMP_DIR}/T-FLEX CAD 2D+ 17/T-FLEX CAD 2D+ 17.msi"
if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%202D+%2017.zip" "${AUTOINSTALL_ZIP}" ; then
7z x -y "${AUTOINSTALL_ZIP}" -o"${AUTOINSTALL_DIR}"
unpack "${AUTOINSTALL_ZIP}" "${AUTOINSTALL_DIR}"
try_remove_file "${AUTOINSTALL_ZIP}"
wine_run_install "${AUTOINSTALL_EXE}" /q

View File

@ -2,77 +2,16 @@
# info_ru: Система T-FLEX DOCs предназначена для комплексного управления инженерными данными предприятия, а также решения задач конструкторско-технологического и организационно-распорядительного документооборота.
########################################################################
export PROG_NAME="T-FLEX DOCs 17"
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
export PROG_ICON="tflexdoc"
export INSTALL_DLL="vcrun2019 d3dcompiler_47 dotnet48 msxml6 fontsmooth=rgb corefonts"
# eucrtbase2019 baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
prepair_wine
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_LIN}" -o"${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_WIN}" -o"${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
7z x -y "${AUTOINSTALL_EXE_WIN1}" -o"${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh"
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
# Программа T-FLEX DOC
AUTOINSTALL_ZIP="${WH_TMP_DIR}/T-FLEX DOCs 17 Client.zip"
@ -80,7 +19,7 @@ AUTOINSTALL_DIR="${WH_TMP_DIR}/T-FLEX DOCs 17"
AUTOINSTALL_EXE="${WH_TMP_DIR}/T-FLEX DOCs 17/T-FLEX DOCs 17/T-FLEX DOCs 17.msi"
if try_download "https://www.tflex.ru/downloads/DOCs/T-FLEX%20DOCs%2017%20Client.zip" "${AUTOINSTALL_ZIP}" ; then
7z x -y "${AUTOINSTALL_ZIP}" -o"${AUTOINSTALL_DIR}"
unpack "${AUTOINSTALL_ZIP}" "${AUTOINSTALL_DIR}"
try_remove_file "${AUTOINSTALL_ZIP}"
wine_run_install "${AUTOINSTALL_EXE}" /q

View File

@ -2,75 +2,16 @@
# info_ru: Просмотр, печать и аннотирование документов T-FLEX CAD
########################################################################
export PROG_NAME="T-FLEX Viewer 17"
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
export PROG_ICON="tflexcad"
export INSTALL_DLL="corefonts d3dcompiler_47 dotnet48 vcrun2019 ucrtbase2019 msxml6 fontsmooth=rgb baekmuk droid eufonts ipamona liberation lucida opensymbol sourcehansans tahoma takao uff unifont vlgothic wenquanyi wenquanyizenhei"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
prepair_wine
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_LIN}" -o"${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
7z x -y "${AUTOINSTALL_ZIP_WIN}" -o"${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
7z x -y "${AUTOINSTALL_EXE_WIN1}" -o"${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh"
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
# Программа T-FLEX Viewer
export AUTOINSTALL_ZIP="${WH_TMP_DIR}/T-FLEX Viewer 17.zip"
@ -78,7 +19,7 @@ export AUTOINSTALL_DIR="${WH_TMP_DIR}"
export AUTOINSTALL_EXE="${WH_TMP_DIR}/T-FLEX Viewer 17/T-FLEX Viewer 17.msi"
if try_download "https://www.tflex.ru/downloads/T-FLEX%20Viewer%2017.zip" "${AUTOINSTALL_ZIP}" ; then
7z x -y "${AUTOINSTALL_ZIP}" -o"${AUTOINSTALL_DIR}"
unpack "${AUTOINSTALL_ZIP}" "${AUTOINSTALL_DIR}"
try_remove_file "${AUTOINSTALL_ZIP}"
wine_run_install "${AUTOINSTALL_EXE}" /q

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_al"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_al/setup.exe"
if try_download "https://ftp.ctm.ru/ALPHABET/SFX/setup_al.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\ALPHABET" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_cl"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_cl/setup.exe"
if try_download "https://ftp.ctm.ru/CONTROL/SFX/setup_cl.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\CONTROL" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_dl"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_dl/setup.exe"
if try_download "https://ftp.ctm.ru/DCL/SFX/setup_dl.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\DCL" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_vi"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_vi/setup.exe"
if try_download "https://ftp.ctm.ru/VEDINFO/SFX/setup_vi.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\VED_INFO" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_pa"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_pa/setup.exe"
if try_download "https://ftp.ctm.ru/PAYMENT/SFX/setup_pa.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\PAYMENT" /auto /hide

View File

@ -18,7 +18,7 @@ AUTOINSTALL_UNPACK="${WH_TMP_DIR}/setup_st"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/setup_st/setup.exe"
if try_download "https://ftp.ctm.ru/STS/SFX/setup_st.exe" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
unpack "${AUTOINSTALL_EXE}" "${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /cd /targetdir="C:\\\\Program Files\\\\CTM\\\\STS" /auto /hide

View File

View File

@ -0,0 +1,93 @@
#!/usr/bin/env bash
# info_ru: Компоненты сервисов поддержки T-FLEX 17
########################################################################
export WH_WINDOWS_VER="10"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export BASE_PFX="tflex17_pfx_x64_v01"
export WINEARCH="win64"
export WINEPREFIX="tflex17"
export PROG_VERSION=""
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"
prepair_wine
if [[ -d "$WINEPREFIX" ]] \
&& grep -q "t-flex-cad17-prepair" "$WINEPREFIX/winetricks.log" \
&& systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Префикс $PREFIX_NAME готов к установке ПО."
print_info "Сервисы: aksusbd и hasplmd уже запущены."
else
print_warning "Службы aksusbd и hasplmd не запущены, или префикс не подготовлен"
print_info "Запускаем подготовку префикса скриптом: t-flex-cad17-prepair"
if [[ "$BASE_PFX" == "none" ]] \
|| ! systemctl list-units --type service --state running | grep aksusbd \
|| ! systemctl list-units --type service --state running | grep hasplmd
then
# Компоненты поддержки 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
unpack "${AUTOINSTALL_ZIP_LIN}" "${AUTOINSTALL_DIR_LIN}"
try_remove_file "$AUTOINSTALL_ZIP_LIN"
"$WINELOADER" regedit "${AUTOINSTALL_EXE_LIN1}"
fi
if [[ "$BASE_PFX" == "none" ]] ; then
# Компоненты поддержки 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
unpack "${AUTOINSTALL_ZIP_WIN}" "${AUTOINSTALL_DIRWIN}"
try_remove_file "$AUTOINSTALL_ZIP_WIN"
unpack "${AUTOINSTALL_EXE_WIN1}" "${AUTOINSTALL_EXE_WIN_MSY}"
try_remove_file "$AUTOINSTALL_EXE_WIN1"
wine_run_install "${AUTOINSTALL_EXE_WIN_MSY}/AceRedist.msi" /q
wine_run_install "${AUTOINSTALL_EXE_WIN2}" /q
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"
fi
if systemctl list-units --type service --state running | grep aksusbd \
&& systemctl list-units --type service --state running | grep hasplmd
then
print_info "Службы aksusbd и hasplmd уже запущены. Пропускаем..."
else
echo "#!/usr/bin/env bash
cd \"${WH_TMP_DIR}/Prerequisites_T-FLEX_17_Linux/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
unset TFLEX_ERROR
su_run "${WH_TMP_DIR}/tflex17_aksusbd.sh" || TFLEX_ERROR=1
try_remove_file "${WH_TMP_DIR}/tflex17_aksusbd.sh"
fi
try_remove_dir "$AUTOINSTALL_DIR_LIN"
try_remove_dir "${WH_TMP_DIR}/Компоненты поддержки T-FLEX 17/"
fi
if [[ $TFLEX_ERROR == "1" ]] ; then
fatal "Произошла ошибка во время подготовки префикса, или установки компонентов ПО."
else
echo "t-flex-cad17-prepair" >> "$WINEPREFIX/winetricks.log"
print_info "Подготовка префикса и установка компонентов завершены."
fi
fi

View File

@ -19,11 +19,11 @@ apt-repo | grep -q "x86_64-i586" || fatal "Репозиторий x86_64-i586 н
windows приложения. Подробнее по ссылке: https://www.altlinux.org/Biarch"
##### INSTALL DEPENDENCIES #####
# fonts-ttf-ms
apt-get install {i586-,}{glibc-core,libstdc++6,glibc-pthread,glibc-nss,\
libOSMesa,libnss-mdns,libunixODBC2,ocl-icd,libfreetype,libfontconfig1,\
libgnutls30,libGL,libEGL,xorg-dri-swrast,xorg-dri-intel,xorg-dri-radeon,\
libvulkan1,libcups} || fatal "Не удалось установить зависимости."
apt-get install {i586-,}wine
# yad zenity

View File

@ -16,7 +16,7 @@ EXE_SETUP_NAME="setup_cs.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then
prepair_wine
7z x -y "$2" -o"${AUTOINSTALL_UNPACK}"
unpack "$2" "${AUTOINSTALL_UNPACK}"
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"

View File

@ -16,7 +16,7 @@ EXE_SETUP_NAME="setup_rk.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then
prepair_wine
7z x -y "$2" -o"${AUTOINSTALL_UNPACK}"
unpack "$2" "${AUTOINSTALL_UNPACK}"
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"

View File

@ -16,7 +16,7 @@ EXE_SETUP_NAME="setup_ri.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then
prepair_wine
7z x -y "$2" -o"${AUTOINSTALL_UNPACK}"
unpack "$2" "${AUTOINSTALL_UNPACK}"
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"

View File

@ -16,7 +16,7 @@ EXE_SETUP_NAME="setup_rt.exe"
if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then
prepair_wine
7z x -y "$2" -o"${AUTOINSTALL_UNPACK}"
unpack "$2" "${AUTOINSTALL_UNPACK}"
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"

View File

@ -0,0 +1,21 @@
#!/usr/bin/env bash
# info_ru: Ручная установка дополнений для T-FLEX CAD 17
########################################################################
export PROG_NAME="T-FLEX CAD 17"
export PROG_ICON="tflexcad"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEARCH="win64"
export WH_WINDOWS_VER="10"
export WINEPREFIX="tflex17"
export WH_XDG_OPEN="log"
if [[ -f "$2" ]] ; then
# используем общий whdb файл для подготовки префикса и сервисов
# prepair_wine используется из файла настроек
source "$WH_DB_DIR/t-flex-cad17.whdb"
wine_run_install "$2"
else
fatal "Не найден файл установки. Перезапустите по примеру:
winehelper install $1 \"/путь/до/файла\""
fi

View File

@ -6,6 +6,27 @@ if [[ $(id -u) -eq 0 ]] ; then
exit 1
fi
##### DEFAULT PATH #####
SCRIPT_NAME="$(basename "$0")"
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
# переменные для установленного WineHelper в систему
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
DATA_PATH="/usr/share/$SCRIPT_NAME"
else
# переменные для тестового запуска WineHelper из репозитория
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
RUN_SCRIPT="$(realpath "$0")"
DATA_PATH="$(dirname "$RUN_SCRIPT")"
# минимальная проверка синтаксиса скриптов
for self_check_script in "$RUN_SCRIPT" \
"$DATA_PATH/dependencies.sh" "$DATA_PATH/autoinstall"/* \
"$DATA_PATH/manualinstall"/* "$DATA_PATH/database"/*
do /usr/bin/bash -n "$self_check_script" || exit 1
done
fi
##### MESSAGES FUNCTIONS #####
print_error () { printf "\E[31m%s Ошибка: $@ %s\e[0m\n" ;}
print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" ;}
@ -53,17 +74,6 @@ fi
WINETRICKS_VERSION="20250102"
##### DEFAULT VARIABLES #####
SCRIPT_NAME="$(basename "$0")"
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
DATA_PATH="/usr/share/$SCRIPT_NAME"
else
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
RUN_SCRIPT="$(realpath "$0")"
DATA_PATH="$(dirname "$RUN_SCRIPT")"
fi
WH_VULKAN_LIBDIR="$USER_WORK_PATH/vulkan"
WH_PREFIXES_DIR="$USER_WORK_PATH/prefixes"
WH_DIST_DIR="$USER_WORK_PATH/dist"
@ -131,6 +141,8 @@ su_run () {
}
##### CHECK DEPENDENCIES #####
# fonts-ttf-ms
if ! rpm -q {i586-,}{wine,glibc-core,libstdc++6,glibc-pthread,glibc-nss,libOSMesa,\
libnss-mdns,libunixODBC2,ocl-icd,libfreetype,libfontconfig1,libgnutls30,libGL,\
libEGL,xorg-dri-swrast,xorg-dri-intel,xorg-dri-radeon,libvulkan1,libcups} 1>/dev/null
@ -226,24 +238,25 @@ create_new_dir () {
unpack () {
print_info "Запуск распаковки архива $1"
local command outarg
case $1 in
*.tar.xz) local command="tar -Jxhf";;
*.tar.gz) local command="tar -xhzf" ;;
*.tar.zst) local command="tar -I zstd -xhf" ;;
*.tar) local command="tar -xhf" ;;
*.tar.xz) command="tar -Jxhf" ; outarg="-C " ;;
*.tar.gz) command="tar -xhzf" ; outarg="-C " ;;
*.tar.zst) command="tar -I zstd -xhf" ; outarg="-C " ;;
*.tar) command="tar -xhf" ; outarg="-C " ;;
*.zip|*.exe) command="7z x -y" ; outarg="-o" ;;
esac
create_new_dir "$2"
if $command "$1" -C "$2" ; then
print_ok "Архив $1 распакован."
if $command "$1" ${outarg}"$2" ; then
print_ok "Файл $1 распакован."
return 0
else
print_error "Распаковать архив $1 не удалось!"
return 1
fatal "Распаковать файл $1 не удалось!"
fi
}
try_download () {
local DOWNLOAD_FILE_URL="$1"
local DOWNLOAD_FILE_URL="${1// /%20}"
local OUTPUT_FILE="$2"
local OUTPUT_FILE_NAME="$(basename "$OUTPUT_FILE")"
@ -361,7 +374,13 @@ create_desktop () {
local name_desktop="$1"
local exe_file="$2"
local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
local icon_file="$WH_IMAGE_PATH/$3.png"
local icon_file
if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$3" ]]
then icon_file="$3"
elif [[ -f "$WH_IMAGE_PATH/$3.png" ]]
then icon_file="$WH_IMAGE_PATH/$3.png"
else icon_file="wine"
fi
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
fatal "Used: $SCRIPT_NAME --desktop \"desktop_name\" \"path_to_exe\" \"name_png_from_image\""
@ -385,7 +404,6 @@ create_desktop () {
# создаем .desktop файл
create_new_dir "$WH_MENU_DIR"
[[ ! -f "$icon_file" ]] && icon_file=wine
{
echo "[Desktop Entry]"
echo "Name=$name_desktop"
@ -400,14 +418,19 @@ create_desktop () {
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
# добавляем информацию о приложении в "$WINEPREFIX/desktop.list"
if [[ -f "$WINEPREFIX/desktop.list" ]] \
&& grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list"
then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list"
if [[ "$RESTORE_FROM_BACKUP" == "1" ]] ; then
print_info "Пропускаем обновление desktop.list (режим восстановления из бэкапа)"
else
# добавляем информацию о приложении в "$WINEPREFIX/desktop.list"
if [[ -f "$WINEPREFIX/desktop.list" ]] \
&& grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list"
then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list"
fi
create_new_dir "$WINEPREFIX/icons"
try_copy_file "$icon_file" "$WINEPREFIX/icons/"
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
fi
create_new_dir "$WINEPREFIX/icons"
try_copy_file "$icon_file" "$WINEPREFIX/icons/"
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
# создаем файл категории для меню
create_new_dir "$HOME/.local/share/desktop-directories"
@ -837,7 +860,7 @@ check_prefix_var () {
local prefixes=()
local count=1
print_info "Доступные префиксы WineHelper:"
for prefix in "$WH_PREFIXES_DIR"/*; do
for prefix in "$WH_PREFIXES_DIR"/* ; do
if [[ -d "$prefix" ]]; then
prefixes+=("$prefix")
echo "$count. $(basename "$prefix")"
@ -845,26 +868,25 @@ check_prefix_var () {
fi
done
if [[ ${#prefixes[@]} -eq 0 ]]; then
fatal "Не найдено ни одного префикса!"
fi
[[ ${#prefixes[@]} -eq 0 ]] && fatal "Не найдено ни одного префикса!"
local max_choice=${#prefixes[@]}
read -p "Выберите префикс (1-$max_choice): " choice
if [[ "$choice" -ge 1 && "$choice" -le "$max_choice" ]]; then
if [[ "$choice" -ge 1 && "$choice" -le "$max_choice" ]] ; then
export WINEPREFIX="${prefixes[$choice-1]}"
else
fatal "Неверный выбор."
fi
print_info "Выбран префикс: $WINEPREFIX"
fi
if echo "$WINEPREFIX" | grep -qv '/' ; then
export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX"
fi
export PREFIX_NAME="$(basename "$WINEPREFIX")"
print_info "Выбран префикс: $PREFIX_NAME"
return 0
}
@ -912,6 +934,12 @@ init_wineprefix () {
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser"
fi
if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then
print_info "Обновление префикса $WINEPREFIX."
"$WINELOADER" wineboot -u
wait_wineserver
fi
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
fi
@ -920,6 +948,10 @@ init_wineprefix () {
# хак для XRDP сессии
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, настраиваем реестр:"
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"
@ -1147,7 +1179,7 @@ wine_run () {
}
wine_run_install () {
print_info "Запускаем установку приложения $PROG_NAME."
print_info "Запускаем установку: $1."
if [[ "$INSTALL_MODE" == "manual" ]]
then print_warning "Рекомендуется не менять пути для установки приложения!"
fi
@ -1207,25 +1239,18 @@ run_autoinstall () {
}
remove_prefix() {
local prefix_name="$1"
local prefix_path="$WH_PREFIXES_DIR/$prefix_name"
if [[ -z "$prefix_name" ]]; then
print_error "Не указано имя префикса для удаления."
echo "Использование: $SCRIPT_NAME remove-prefix [имя_префикса]"
echo "Доступные префиксы:"
ls -1 "$WH_PREFIXES_DIR"
return 1
export WINEPREFIX="$1"
if [[ -z "$WINEPREFIX" ]]
then print_error "Не указано имя префикса для удаления!"
fi
if [[ ! -d "$prefix_path" ]]; then
print_error "Префикс "$prefix_name" не найден."
return 1
check_prefix_var
if [[ ! -d "$WINEPREFIX" ]]
then fatal "Префикса \"$PREFIX_NAME\" не существует!"
fi
if [[ ! $2 =~ --force|-y ]] ; then
echo "======================================================"
print_warning "Вы собираетесь удалить префикс "$prefix_name"."
print_warning "Вы собираетесь удалить префикс "$PREFIX_NAME"."
echo "Это приведёт к:"
echo " - Полному удалению всех данных префикса"
echo " - Удалению всех программ, установленных в этом префиксе"
@ -1238,13 +1263,12 @@ remove_prefix() {
return 0
fi
fi
try_remove_dir "$prefix_path"
if [[ $? -eq 0 ]]; then
print_ok "Префикс "$prefix_name" успешно удален."
if try_remove_dir "$WINEPREFIX" ; then
print_ok "Префикс "$PREFIX_NAME" успешно удален."
for desktop_file in "$WH_MENU_DIR"/*.desktop; do
if grep -q "$prefix_path" "$desktop_file"; then
if grep -q "$WINEPREFIX" "$desktop_file"; then
desktop_name=$(basename "$desktop_file")
remove_desktop "${desktop_name%.*}"
fi
@ -1252,7 +1276,7 @@ remove_prefix() {
return 0
else
print_error "Не удалось удалить префикс "$prefix_name"."
print_error "Не удалось удалить префикс "$PREFIX_NAME"."
return 1
fi
}
@ -1313,23 +1337,183 @@ remove_winehelper () {
fi
}
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"
print_info "Начало резервного копирования префикса: $PREFIX_NAME"
create_new_dir "$temp_backup_dir"
create_new_dir "$temp_backup_dir/prefixes/"
create_new_dir "$temp_backup_dir/dist/"
print_info "Подготовка префикса к упаковке..."
if cp -a "$WINEPREFIX" "$temp_prefix_dir" ; then
try_remove_dir "$temp_prefix_dir/dosdevices"
try_remove_file "$temp_prefix_dir/.update-timestamp"
if [[ -d "$temp_users_dir/$USER" ]] \
&& [[ ! -L "$temp_users_dir/$USER" ]]
then
if [[ -L "$temp_users_dir/xuser" ]]
then try_remove_dir "$temp_users_dir/xuser"
fi
create_new_dir "$temp_users_dir/xuser"
cp -fr "$temp_users_dir/$USER"/* "$temp_users_dir/xuser/"
fi
try_remove_dir "$temp_users_dir/$USER"
print_ok "Директория префикса подготовлена."
else
print_error "Не удалось подготовить директорию префикса."
try_remove_dir "$temp_backup_dir"
return 1
fi
if [[ -f "$WINEPREFIX/last.conf" ]]; then
source "$WINEPREFIX/last.conf"
if [[ -n "$WH_WINE_USE" ]] \
&& [[ $WH_WINE_USE != system* ]] \
&& [[ -d "$WH_DIST_DIR/$WH_WINE_USE" ]]
then
print_info "Копирование используемой версии WINE: $WH_WINE_USE"
if cp -a "$WH_DIST_DIR/$WH_WINE_USE" "$temp_backup_dir/dist/"
then print_ok "WINE скопирован."
else fatal "Не удалось скопировать WINE."
fi
fi
fi
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."
try_remove_dir "$temp_backup_dir"
return 1
fi
try_remove_dir "$temp_backup_dir"
print_info "Создание резервной копии префикса завершено."
return 0
}
restore_prefix() {
local backup_archive_path="$1"
local temp_extract_dir prefix_name
if [[ -z "$backup_archive_path" ]] ; then
read -e -p "Укажите путь к архиву резервной копии (/путь/к/архиву.whpack): " backup_archive_path
backup_archive_path=$(echo "$backup_archive_path" | sed "s/'//g; s/\"//g")
if [[ -z "$backup_archive_path" ]] ; then
fatal "Путь к архиву не указан. Восстановление отменено."
fi
fi
if [[ ! -f "$backup_archive_path" ]]
then fatal "Файл архива не найден: $backup_archive_path"
fi
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)"
create_new_dir "$temp_extract_dir"
print_info "Распаковка архива..."
if unsquashfs -f -d "$temp_extract_dir" "$backup_archive_path" ; then
print_ok "Архив успешно распакован."
else
try_remove_dir "$temp_extract_dir"
fatal "Не удалось распаковать архив."
fi
if [[ -d "$temp_extract_dir/prefixes" ]] ; then
local prefix_name
prefix_name="$(ls -1 "$temp_extract_dir/prefixes")"
local prefix_dir="$temp_extract_dir/prefixes/$prefix_name"
print_info "Восстановление префикса: $prefix_name"
if [[ -d "$temp_extract_dir/dist" ]] ; then
print_info "Восстановление версий WINE"
if cp -fr "$temp_extract_dir/dist"/* "$WH_DIST_DIR/"
then print_ok "Версии WINE восстановлены."
else print_warning "Не удалось восстановить версии WINE."
fi
try_remove_dir "$temp_extract_dir/dist"
fi
if ! mv "$prefix_dir" "$WH_PREFIXES_DIR/" ; then
try_remove_dir "$temp_extract_dir"
fatal "Не удалось восстановить префикс $prefix_name."
else
print_ok "Префикс $prefix_name восстановлен."
print_info "Восстановление ярлыков для префикса $prefix_name..."
export RESTORE_FROM_BACKUP="1" # Устанавливаем флаг восстановления
while IFS='=' read -r line; 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_icon_path="$WH_PREFIXES_DIR/$prefix_name/icons/$icon_name"
if [[ -f "$full_exe_path" ]]; then
print_info "Создание ярлыка для $name_desktop"
create_desktop "$name_desktop" "$full_exe_path" "$full_icon_path"
else
print_warning "Исполняемый файл для ярлыка '$name_desktop' не найден: $full_exe_path"
fi
done < "$WH_PREFIXES_DIR/$prefix_name/desktop.list"
unset RESTORE_FROM_BACKUP # Снимаем флаг после завершения
print_ok "Ярлыки для префикса $prefix_name восстановлены."
fi
else
try_remove_dir "$temp_extract_dir"
fatal "Директория prefixes не найдена в архиве."
fi
try_remove_dir "$temp_extract_dir"
print_ok "Полное восстановление префикса $prefix_name завершено."
return 0
}
wh_info () {
echo "Использование: $SCRIPT_NAME [команда]
Команды:
install list список возможных установочных скриптов
install [скрипт] запустить скрипт установки программы
install [скрипт] --clear-pfx не использовать подготовленный префикс для установки ПО
install list список возможных установочных скриптов
install [скрипт] запустить скрипт установки программы
install [скрипт] --clear-pfx не использовать готовый префикс для установки ПО
installed список установленных программ
run [программа.exe] запуск программы (отладка)
remove-all удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные
installed список установленных программ
run [программа.exe] запуск программы (отладка)
remove-all удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные
backup-prefix [имя_префикса] создать резерную копию префикса
restore-prefix \"путь/до/whpack\" восстановить префикс из резервной копии
Параметры:
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
"
}
@ -1345,7 +1529,14 @@ if [[ -d "$HOME/.local/share/$SCRIPT_NAME" ]] \
then try_force_link_dir "$HOME/.local/share/$SCRIPT_NAME" "$HOME/.winehelper"
fi
case "${1,,}" in
if [[ -n "$1" ]] ; then
arg1="$1"
shift
else
arg1="--help"
fi
case "$arg1" in
--version) rpm -qi "$SCRIPT_NAME" ; exit 0 ;;
--help) wh_info ; exit 0 ;;
killall) kill_wine ;;
@ -1353,18 +1544,19 @@ case "${1,,}" in
winereg|regedit) prepair_wine ; wine_run "regedit" ;;
winefile|explorer) prepair_wine ; wine_run "winefile" ;;
wineconsole|cmd) prepair_wine ; wine_run "wineconsole" ;;
winetricks) shift ; prepair_wine ; "$WINETRICKS" -q "$@" ;;
desktop) shift ; create_desktop "$@" ; exit 0 ;;
install|-i) shift ; run_autoinstall "$@" ;;
installed) shift ; check_installed_programs "$1" ;;
run|-r) shift ; run_installed_programs "$1" ;;
remove-all) shift ; remove_winehelper "$@" ;;
remove-prefix) shift ; remove_prefix "$@" ;;
winetricks) prepair_wine ; "$WINETRICKS" -q "$@" ;;
desktop) create_desktop "$@" ; exit 0 ;;
install|-i) run_autoinstall "$@" ;;
installed) check_installed_programs "$1" ;;
run|-r) run_installed_programs "$1" ;;
backup-prefix) backup_prefix "$@" ;;
restore-prefix) restore_prefix "$@" ;;
remove-all) remove_winehelper "$@" ;;
remove-prefix) remove_prefix "$@" ;;
*)
if [[ -f "$1" ]] ; then
WIN_FILE_EXEC="$(readlink -f "$1")"
WIN_FILE_NAME="$(basename "$WIN_FILE_EXEC")"
shift
if [[ -f "$arg1" ]] ; then
WIN_FILE_EXEC="$(readlink -f "$arg1")"
WIN_FILE_NAME="$(basename "$arg1")"
case "${WIN_FILE_NAME,,}" in
*.exe) prepair_wine ; wine_run $WINE_WIN_START "$WIN_FILE_EXEC" "$@" ;;
*.msi) prepair_wine ; wine_run msiexec /i "$WIN_FILE_EXEC" "$@" ;;
@ -1372,8 +1564,9 @@ case "${1,,}" in
*) fatal "Тип файла не поддерживается." ;;
esac
else
print_error "Команды $arg1 не существует."
wh_info
exit 1
fi
;;
;;
esac