Compare commits

...

12 Commits

Author SHA1 Message Date
Mikhail Tergoev
cd619bb9cc updated changelog to 0.3.7 2025-05-06 13:12:06 +03:00
Mikhail Tergoev
b319f4146c updated check: noexec only for /home (ALT bug: 54095) 2025-05-06 12:25:50 +03:00
Mikhail Tergoev
70b577dce5 Merge branch 'minergenon-zulugis' 2025-05-05 21:48:55 +03:00
Sergey Palcheh
997612c98d remove winehelper 2025-05-05 13:29:04 +06:00
Mikhail Tergoev
8892f29a33 updated script: scadoffice 2025-04-30 13:25:10 +03:00
Mikhail Tergoev
5c0a62ff02 updated create menu and desktop files 2025-04-30 13:19:46 +03:00
Mikhail Tergoev
20f2f6d112 updated changelog to 0.3.6 2025-04-25 18:14:25 +03:00
Mikhail Tergoev
0d4faa3224 added desktop categories 2025-04-25 18:11:03 +03:00
Sergey Palcheh
388293e929 added autoinstall/zulugis 2025-04-24 13:01:34 +06:00
Mikhail Tergoev
cd966cc4f8 updated changelog to 0.3.4 2025-04-22 14:40:46 +03:00
Mikhail Tergoev
a6722fb4fd updated init_wineprefix and added list for manualinstall 2025-04-22 14:37:40 +03:00
Mikhail Tergoev
3502dd8bfd updated daobit 2025-04-22 13:10:17 +03:00
8 changed files with 261 additions and 63 deletions

@ -1,5 +1,20 @@
История изменений:
0.3.7:
* обновлены функции создания desktop файлов (ярлыков) и категория WineHelper в меню
* обновлен скрипт установки scadoffice
* добавлена автоустановка:
winehelper install zulugis - ZuluGIS 2021 Инженерные расчёты
* добавлена функция полного удаления WineHelper
* обновлена проверка на наличие noexec для /home (ALT bug: 54095)
0.3.6:
* добавлена категория WineHelper для desktop файлов (ярлыков) в меню
0.3.5:
* обновлены скрипты установок daobit
* добавлен вывод списка программ с возможностью установки из существующего дистрибутива
0.3.4:
* добавлены скрипты установки специализированных программных решений для железнодорожной логистики daobit:
winehelper install daobit-cservice "/путь/до/установочногоайла" - "Сервис обновления ПО"

@ -3,44 +3,42 @@
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="scadoffice"
export BASE_PFX="none"
export BASE_PFX="scadaoffice_pfx_x64_v01"
export WH_WINDOWS_VER="10"
export WINEARCH="win64"
export INSTALL_DLL="dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6"
ADDONS_PACK="${WH_TMP_DIR}/scadoffice_addons_v01.tar.xz"
ADDONS_PATH="${WH_TMP_DIR}/scadoffice_addons"
OFFICE_EXE="${ADDONS_PATH}/OpenOffice.exe"
OFFICE_PACK="${ADDONS_PATH}/OpenOffice"
AUTOINSTALL_SETUP="${ADDONS_PATH}/OpenOffice/setup.exe"
ADDONS_PATH_REG="${ADDONS_PATH}/REG"
ADDONS_PATH_MDAC="${ADDONS_PATH}/mdac64"
ADDONS_PATH_OPENSSH="${ADDONS_PATH}/OpenSSH"
AUTOINSTALL_EXE="${WH_TMP_DIR}/SCADOffice_11.exe"
DRIVE_C_SCADOFFICE="$DRIVE_C/SCAD Soft/SCADOffice/64"
export INSTALL_DLL="dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6 dotnet20"
AUTOINSTALL_EXE="${WH_TMP_DIR}/SCADOffice_installer.exe"
prepair_wine
if try_download "https://scadhelp.ru/files/10/download" "${AUTOINSTALL_EXE}" ; then
create_new_dir "$DRIVE_C/SDATA"
create_new_dir "$DRIVE_C/SWORK"
wine_run_install "${AUTOINSTALL_EXE}" /auto /hide
DRIVE_C_SCADOFFICE="$DRIVE_C/SCAD Soft/SCADOffice/64"
# Определение всех программ, значков и исполняемых файлов
declare -a PROG_NAME=("Арбат" "Вест" "Глобальные настройки" "Декор" "Дискретная арматура" "Запрос" "Камин" "КоКон" "Комета" "Конструктор сечений" "Консул" "Конфигуратор лицензий" "Кристалл" "Кросс" "Куст" "Магнум" "Монолит" "Откос" "Пастернак" "Преобразование ед. измерений" "Cортамент металлопроката" "Расчет по формуле" "Редактор акселерограмм" "Редактор динамичности" "Редактор материалов" "Тонус" "Эквивалентное сечение" "SCAD++")
declare -a PROG_ICON=("arbat" "west" "globalsettings" "decor" "rebar" "underground" "comein" "cocon" "comet" "section" "consul" "configprotection" "kristall" "cross" "kust" "magnum" "monolit" "slope" "pasternak" "ucalc" "viewprof" "scalc" "acceledit" "betaedit" "materialsedit" "tonus" "sezam" "scadx")
declare -a WIN_FILE_EXEC=("${DRIVE_C_SCADOFFICE}/Arbat.exe" "${DRIVE_C_SCADOFFICE}/West.exe" "${DRIVE_C_SCADOFFICE}/GlobalSettings.exe" "${DRIVE_C_SCADOFFICE}/Decor.exe" "${DRIVE_C_SCADOFFICE}/ReBar.exe" "${DRIVE_C_SCADOFFICE}/UnderGround.exe" "${DRIVE_C_SCADOFFICE}/ComeIn.exe" "${DRIVE_C_SCADOFFICE}/CoCon.exe" "${DRIVE_C_SCADOFFICE}/Comet2.exe" "${DRIVE_C_SCADOFFICE}/Section.exe" "${DRIVE_C_SCADOFFICE}/Consul.exe" "${DRIVE_C_SCADOFFICE}/ConfigProtection.exe" "${DRIVE_C_SCADOFFICE}/Kristall.exe" "${DRIVE_C_SCADOFFICE}/Cross.exe" "${DRIVE_C_SCADOFFICE}/Kust2.exe" "${DRIVE_C_SCADOFFICE}/Magnum.exe" "${DRIVE_C_SCADOFFICE}/Monolit.exe" "${DRIVE_C_SCADOFFICE}/Slope.exe" "${DRIVE_C_SCADOFFICE}/Pasternak.exe" "${DRIVE_C_SCADOFFICE}/UCalc.exe" "${DRIVE_C_SCADOFFICE}/ViewProf.exe" "${DRIVE_C_SCADOFFICE}/SCalc.exe" "${DRIVE_C_SCADOFFICE}/AccelEdit.exe" "${DRIVE_C_SCADOFFICE}/BetaEdit.exe" "${DRIVE_C_SCADOFFICE}/MaterialsEdit.exe" "${DRIVE_C_SCADOFFICE}/Tonus.exe" "${DRIVE_C_SCADOFFICE}/Sezam.exe" "${DRIVE_C_SCADOFFICE}/SCADX.exe")
# Цикл для создания десктопных файлов
for i in "${!PROG_NAME[@]}"; do
create_desktop "${PROG_NAME[i]}" "${WIN_FILE_EXEC[i]}" "${PROG_ICON[i]}"
done
if [[ -n $2 ]] ; then
if [[ ! -d "$DRIVE_C_SCADOFFICE" ]] ; then
fatal "Перезапустите скрипт без дополнительных аргументов для установки SCAD Office:
winehelper install scadoffice"
elif [[ ! -f "$2" ]] ; then
fatal "Перезапустите скрипт с правильным путем до файла лицензии SCAD Office:
winehelper install scadoffice \"/путь/до/файла.exe\""
else
print_info "Устанавливаем файл лицензии $2"
wine_run "$2"
exit 0
fi
fi
print_info "Установка дополнительных компонентов..."
if [[ $BASE_PFX == "none" ]] ; then
print_info "Установка дополнительных компонентов..."
if try_download "https://cloud.linux-gaming.ru/portproton/scadoffice_addons_v01.tar.xz" "${ADDONS_PACK}" ; then
ADDONS_PACK="${WH_TMP_DIR}/scadoffice_addons_v01.tar.xz"
ADDONS_PATH="${WH_TMP_DIR}/scadoffice_addons"
OFFICE_EXE="${ADDONS_PATH}/OpenOffice.exe"
OFFICE_PACK="${ADDONS_PATH}/OpenOffice"
AUTOINSTALL_SETUP="${ADDONS_PATH}/OpenOffice/setup.exe"
ADDONS_PATH_REG="${ADDONS_PATH}/REG"
ADDONS_PATH_MDAC="${ADDONS_PATH}/mdac64"
ADDONS_PATH_OPENSSH="${ADDONS_PATH}/OpenSSH"
if try_download "https://cloud.linux-gaming.ru/portproton/scadoffice_addons_v01.tar.xz" "${ADDONS_PACK}" ; then
create_new_dir "${ADDONS_PATH}"
unpack "${ADDONS_PACK}" "${ADDONS_PATH}"
7z x -y "${OFFICE_EXE}" -o"${OFFICE_PACK}"
@ -57,12 +55,30 @@ if try_download "https://cloud.linux-gaming.ru/portproton/scadoffice_addons_v01.
# Установка SSH
cp -r "${ADDONS_PATH_OPENSSH}" "$DRIVE_C/windows/system32/"
export PROG_NAME1="OpenOffice"
export PROG_ICON1="openoffice"
WIN_FILE_EXEC1="$DRIVE_C/Program Files (x86)/OpenOffice 4/program/soffice.exe"
create_desktop "$PROG_NAME1" "$WIN_FILE_EXEC1" "$PROG_ICON1"
try_remove_dir "$ADDONS_PATH"
try_remove_file "$ADDONS_PACK"
try_remove_file "$AUTOINSTALL_EXE"
fi
fi
if try_download "https://scadhelp.ru/files/10/download" "${AUTOINSTALL_EXE}" ; then
create_new_dir "$DRIVE_C/SDATA"
create_new_dir "$DRIVE_C/SWORK"
wine_run_install "${AUTOINSTALL_EXE}" /auto /hide
try_remove_file "$AUTOINSTALL_EXE"
# Определение всех программ, значков и исполняемых файлов
declare -a PROG_NAME=("Арбат" "Вест" "Глобальные настройки" "Декор" "Дискретная арматура" "Запрос" "Камин" "КоКон" "Комета" "Конструктор сечений" "Консул" "Конфигуратор лицензий" "Кристалл" "Кросс" "Куст" "Магнум" "Монолит" "Откос" "Пастернак" "Преобразование ед. измерений" "Cортамент металлопроката" "Расчет по формуле" "Редактор акселерограмм" "Редактор динамичности" "Редактор материалов" "Тонус" "Эквивалентное сечение" "SCAD++")
declare -a PROG_ICON=("arbat" "west" "globalsettings" "decor" "rebar" "underground" "comein" "cocon" "comet" "section" "consul" "configprotection" "kristall" "cross" "kust" "magnum" "monolit" "slope" "pasternak" "ucalc" "viewprof" "scalc" "acceledit" "betaedit" "materialsedit" "tonus" "sezam" "scadx")
declare -a WIN_FILE_EXEC=("${DRIVE_C_SCADOFFICE}/Arbat.exe" "${DRIVE_C_SCADOFFICE}/West.exe" "${DRIVE_C_SCADOFFICE}/GlobalSettings.exe" "${DRIVE_C_SCADOFFICE}/Decor.exe" "${DRIVE_C_SCADOFFICE}/ReBar.exe" "${DRIVE_C_SCADOFFICE}/UnderGround.exe" "${DRIVE_C_SCADOFFICE}/ComeIn.exe" "${DRIVE_C_SCADOFFICE}/CoCon.exe" "${DRIVE_C_SCADOFFICE}/Comet2.exe" "${DRIVE_C_SCADOFFICE}/Section.exe" "${DRIVE_C_SCADOFFICE}/Consul.exe" "${DRIVE_C_SCADOFFICE}/ConfigProtection.exe" "${DRIVE_C_SCADOFFICE}/Kristall.exe" "${DRIVE_C_SCADOFFICE}/Cross.exe" "${DRIVE_C_SCADOFFICE}/Kust2.exe" "${DRIVE_C_SCADOFFICE}/Magnum.exe" "${DRIVE_C_SCADOFFICE}/Monolit.exe" "${DRIVE_C_SCADOFFICE}/Slope.exe" "${DRIVE_C_SCADOFFICE}/Pasternak.exe" "${DRIVE_C_SCADOFFICE}/UCalc.exe" "${DRIVE_C_SCADOFFICE}/ViewProf.exe" "${DRIVE_C_SCADOFFICE}/SCalc.exe" "${DRIVE_C_SCADOFFICE}/AccelEdit.exe" "${DRIVE_C_SCADOFFICE}/BetaEdit.exe" "${DRIVE_C_SCADOFFICE}/MaterialsEdit.exe" "${DRIVE_C_SCADOFFICE}/Tonus.exe" "${DRIVE_C_SCADOFFICE}/Sezam.exe" "${DRIVE_C_SCADOFFICE}/SCADX.exe")
# Цикл создания десктоп файлов для scad office в каталог SCADOFFICE на рабочемм столе
for i in "${!PROG_NAME[@]}"; do
create_desktop "${PROG_NAME[i]}" "${WIN_FILE_EXEC[i]}" "${PROG_ICON[i]}" "nocopy"
done
# Cоздание десктоп файла для openoffice
WIN_FILE_EXEC1="$DRIVE_C/Program Files (x86)/OpenOffice 4/program/soffice.exe"
create_desktop "OpenOffice" "$WIN_FILE_EXEC1" "openoffice" "nocopy"
fi

21
autoinstall/zulugis Normal file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
# info_ru: ZuluGIS 2021 Инженерные расчёты (Полный) 64-бит. Включает ZuluGIS, пакеты расчетов ZuluThermo, ZuluHydro, ZuluDrain, ZuluGaz, ZuluSteam, библиотеки ZuluXTools и ZuluNetTools. Дополнительно в состав пакета входит Microsoft SQL Server Express LocalDB 2012.
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export PROG_NAME="ZuluGIS 2021"
export WINEPREFIX="zulugis"
export PROG_ICON="zulugis"
export WH_WINDOWS_VER="10"
export BASE_PFX="none"
export WINEARCH="win64"
# export INSTALL_DLL="gdiplus"
export AUTOINSTALL_EXE="${WH_TMP_DIR}/Zulu2021_x64_ru.exe"
prepair_wine
if try_download "https://www.politerm.com/download/zulu/Zulu2021_x64_ru.exe" "${AUTOINSTALL_EXE}" ; then
wine_run_install "${AUTOINSTALL_EXE}" /quiet /norestart
try_remove_file "${AUTOINSTALL_EXE}"
WIN_FILE_EXEC="$DRIVE_C/Program Files/ZuluGIS/Zulu.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
fi

BIN
image/zulugis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@ -19,7 +19,7 @@ if [[ -f "$2" ]] && [[ $2 =~ $EXE_SETUP_NAME$ ]] ; then
7z x -y "$2" -o"${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/daoservc.exe"
WIN_FILE_EXEC="$DRIVE_C/Program Files/DAO/CSERVICE/CService32.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_dir "$AUTOINSTALL_UNPACK"
else

@ -5,7 +5,7 @@ export WH_WINE_USE="wine_x_tkg_10-0_i586" # wine-9.0.9-alt1-i586"
export WINEPREFIX="daobit"
export PROG_NAME="R-Атлас"
export PROG_ICON="daobitratlas"
export BASE_PFX="none"
export BASE_PFX="daobit_pfx_x86_v01"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="dotnet7 dotnetdesktop7 arial renderer=gdi"

@ -63,3 +63,8 @@ dfb44ce5e5af7dba1686932c63d6b05e5dd6919a21c78130a7d1d0271b93958e audiorecstatio
00516ef51079d68ad0f9621c8270e0f86318539b63ebf1085d0faba36896e4ac daobit_pfx_x86_v01.tar.xz
# create with wine_x_tkg_10-0_i586 (universal user: xuser)
# winetricks arial dotnet7 dotnetdesktop7 renderer=gdi
daaaef625f8f44688faf12f9ef4360ad1d35b377b23be634b45c1b8d43239686 scadaoffice_pfx_x64_v01.tar.xz
# create with wine_x_tkg_10-0_i586 (universal user: xuser)
# winetricks dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6 dotnet20
# + addons with openoffice, ODBC, SSH, *.reg

@ -51,6 +51,10 @@ WH_DB_DIR="$DATA_PATH/database"
WH_AUTOINSTALL_DIR="$DATA_PATH/autoinstall"
WH_MANUALINSTALL_DIR="$DATA_PATH/manualinstall"
WH_MENU_DIR="$HOME/.local/share/applications/WineHelper"
WH_MENU_CATEGORY="$HOME/.local/share/desktop-directories/WineHelper.directory"
WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
# export WINEDLLOVERRIDES=mshtml,mscoree="
check_variables WINEESYNC "0"
@ -86,18 +90,10 @@ check_variables VKD3D_VER "1.1-2602"
# check_variables VKD3D_LIMIT_TESS_FACTORS 64
# check_variables VKD3D_FEATURE_LEVEL "12_0"
if [[ "$WINEARCH" == "win32" ]] ;then
check_variables BASE_PFX "defpfx_x86_v01"
check_variables WINEPREFIX "default_x86"
else
check_variables BASE_PFX "defpfx_x64_v01"
check_variables WINEPREFIX "default_x64"
fi
export CLOUD_URL="https://cloud.linux-gaming.ru/portproton"
##### CHECK NOEXEC FOR /HOME #####
if grep "/home" /etc/fstab | grep -q "noexec" ; then
if grep -E "/home[[:space:]]" /etc/fstab | grep -q "noexec" ; then
fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine не возможен из домашнего каталога."
fi
@ -365,6 +361,7 @@ var_ld_library_path_update () {
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"
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
@ -387,24 +384,77 @@ create_desktop () {
fi
fi
create_new_dir "$WH_MENU_DIR"
[[ ! -f "$icon_file" ]] && icon_file=wine
# Создаем .desktop файл
{
echo "[Desktop Entry]"
echo "Name=$name_desktop"
echo "Exec=env \"$RUN_SCRIPT\" \"$exe_file\" %F"
echo "Type=Application"
echo "Categories=Other;"
echo "Categories=WineHelper;"
echo "StartupNotify=true"
echo "Path=$DATA_PATH"
echo "Icon=$icon_file"
} > "$USER_WORK_PATH/$name_desktop.desktop"
chmod +x "$USER_WORK_PATH/$name_desktop.desktop"
} > "$USER_WORK_PATH/$desktop_filename.desktop"
chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
create_new_dir "$HOME/.local/share/applications/"
# cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$HOME/.local/share/applications/"
cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$(xdg-user-dir DESKTOP)"
print_info "На рабочем столе создан $name_desktop.desktop"
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
# Создаем файл категории для меню
create_new_dir "$HOME/.local/share/desktop-directories"
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
cat > "$WH_MENU_CATEGORY" <<EOF
[Desktop Entry]
Type=Directory
Name=WineHelper
Icon=wine
EOF
fi
# Создаем файл меню для всех приложений
create_new_dir "$HOME/.config/menus/applications-merged"
if [[ ! -f "$WH_MENU_CONFIG" ]] ; then
cat > "$WH_MENU_CONFIG" <<EOF
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>Applications</Name>
<Menu>
<Name>WineHelper</Name>
<Directory>WineHelper.directory</Directory>
<Include>
<Category>WineHelper</Category>
</Include>
</Menu>
</Menu>
EOF
# Обновляем меню
if check_command update-menus ; then
update-menus
fi
fi
# Обновляем кэш desktop файлов
if check_command update-desktop-database ; then
update-desktop-database "$HOME/.local/share/applications"
fi
if [[ $4 != "nocopy" ]] ; then
if [[ -n $4 ]] ; then
local desktop_path="$(xdg-user-dir DESKTOP)/$4"
create_new_dir "$desktop_path"
print_info "В меню создан $desktop_filename.desktop и скопирован на рабочий стол в каталог $4"
else
local desktop_path="$(xdg-user-dir DESKTOP)"
print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
fi
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
else
print_info "В меню создан $desktop_filename.desktop"
fi
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
&& [[ -f "$exe_file" ]]
@ -424,9 +474,26 @@ create_desktop () {
remove_desktop () {
if [[ -n "$1" ]] ; then
try_remove_file "$USER_WORK_PATH/$1.desktop"
try_remove_file "$WH_MENU_DIR/$1.desktop"
try_remove_file "$HOME/.local/share/applications/$1.desktop"
try_remove_file "$(xdg-user-dir DESKTOP)/$1.desktop"
fi
# Удаляем категорию если она пуста
if [[ -d "$WH_MENU_DIR" ]] && [[ -z "$(ls -A "$WH_MENU_DIR")" ]]; then
try_remove_dir "$WH_MENU_DIR"
try_remove_file "$WH_MENU_CATEGORY"
try_remove_file "$WH_MENU_CONFIG"
# Обновляем меню
if check_command update-menus ; then
update-menus
fi
fi
# Обновляем кэш desktop файлов
if check_command update-desktop-database ; then
update-desktop-database "$HOME/.local/share/applications"
fi
}
##### INSTALLED PROGRAMS #####
@ -776,15 +843,23 @@ get_base_pfx () {
init_wineprefix () {
if [[ -z "$WINEPREFIX" ]] ; then
export WINEPREFIX="$WH_PREFIXES_DIR/default"
print_warning "Префикс не выбран, используйте пееременную: WINEPREFIX=имя_префикса"
print_info "Список существующих префиксов:"
ls -1 "$WH_PREFIXES_DIR"
echo
exit 1
else
if echo "$WINEPREFIX" | grep -v '/' ; then
export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX"
fi
fi
if [[ "$WINEARCH" == "win32" ]]
then check_variables BASE_PFX "defpfx_x86_v01"
else check_variables BASE_PFX "defpfx_x64_v01"
fi
export DRIVE_C="$WINEPREFIX/drive_c"
# export WINEDLLPATH+=":$DRIVE_C/widows/system32:$DRIVE_C/windows/syswow64"
if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then
create_new_dir "$WINEPREFIX"
@ -1028,7 +1103,7 @@ run_autoinstall () {
export INSTALL_SCRIPT INSTALL_MODE
if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then
echo "Список программ с возможностью автоматической установки:"
print_info "Список программ с возможностью автоматической установки:"
for list in $(ls "$WH_AUTOINSTALL_DIR") ; do
AI_INFO="$(grep "info_ru:" "$WH_AUTOINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')"
AI_PROGNAME="$(grep "PROG_NAME=" "$WH_AUTOINSTALL_DIR/$list" | awk -F"PROG_NAME=" '{print $2}')"
@ -1036,12 +1111,76 @@ run_autoinstall () {
echo "$AI_INFO"
done
echo
print_info "Список программ с возможностью установки из существующего дистрибутива:"
for list in $(ls "$WH_MANUALINSTALL_DIR") ; do
AI_INFO="$(grep "info_ru:" "$WH_MANUALINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')"
AI_PROGNAME="$(grep "PROG_NAME=" "$WH_MANUALINSTALL_DIR/$list" | awk -F"PROG_NAME=" '{print $2}')"
echo -e "\n$list - $AI_PROGNAME"
echo "$AI_INFO"
done
elif [[ "$INSTALL_SCRIPT" != "0" ]] ; then
source "$INSTALL_SCRIPT" "$@"
print_info "Завершена установка $INSTALL_SCRIPT_NAME"
else
fatal "Скрипт автоматической установки для $INSTALL_SCRIPT_NAME не найден!"
fi
echo
}
##### REMOVE WINEHELPER #####
remove_winehelper () {
local answer
echo "======================================================"
print_warning "Вы собираетесь удалить WineHelper и все связанные с ним данные."
echo " Это удалит:"
echo " - Все настройки WineHelper"
echo " - Все приложения/программы, установленные через WineHelper"
echo " - Все ярлыки из меню и с рабочего стола созданные с помощью WineHelper"
echo "======================================================"
echo "Продолжить? (y/N)"
read -r answer
if [[ "$answer" =~ ^[YyДд]$ ]]; then
# Второе подтверждение
echo "----------------------------------------------"
print_warning " ВЫ ТОЧНО УВЕРЕНЫ?"
echo "----------------------------------------------"
echo "Продолжить? (y/N)"
read -r answer
if [[ "$answer" =~ ^[YyДд]$ ]]; then
# Удаление рабочих каталогов
try_remove_dir "$USER_WORK_PATH"
# Удаление файлов меню
try_remove_dir "$WH_MENU_DIR"
try_remove_file "$WH_MENU_CATEGORY"
try_remove_file "$WH_MENU_CONFIG"
# Удаление desktop-файлов
for desktop_file in "$(xdg-user-dir DESKTOP)"/*.desktop; do
if grep -q "Exec=env \"$RUN_SCRIPT\"" "$desktop_file"; then
try_remove_file "$desktop_file"
fi
done
# Обновление кэша desktop-файлов
if check_command update-desktop-database; then
update-desktop-database "$HOME/.local/share/applications"
fi
# Удаление символических ссылок
try_remove_file "$HOME/.winehelper"
print_info "WineHelper и все связанные данные успешно удалены."
else
print_info "Удаление отменено."
fi
else
print_info "Удаление отменено."
fi
}
wh_info () {
@ -1054,6 +1193,7 @@ wh_info () {
installed список установленных программ
run [программа.exe] запуск программы (отладка)
remove удалить WineHelper и все связанные данные
Параметры:
--help показать эту справку и выйти
@ -1087,6 +1227,7 @@ case "${1,,}" in
install|-i) shift ; run_autoinstall "$@" ;;
installed) shift ; check_installed_programs "$1" ;;
run|-r) shift ; run_installed_programs "$1" ;;
remove|--remove) remove_winehelper ;;
*)
if [[ -f "$1" ]] ; then
WIN_FILE_EXEC="$(readlink -f "$1")"