Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
db18a3a233 |
11
CHANGELOG
11
CHANGELOG
@ -1,16 +1,5 @@
|
||||
История изменений:
|
||||
|
||||
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
|
||||
* добавлен вывод списка программ с возможностью установки из существующего дистрибутива
|
||||
|
@ -3,68 +3,27 @@
|
||||
########################################################################
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="scadoffice"
|
||||
export BASE_PFX="scadaoffice_pfx_x64_v01"
|
||||
export BASE_PFX="none"
|
||||
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 dotnet20"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/SCADOffice_installer.exe"
|
||||
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"
|
||||
|
||||
prepair_wine
|
||||
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"
|
||||
|
||||
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
|
||||
|
||||
if [[ $BASE_PFX == "none" ]] ; then
|
||||
print_info "Установка дополнительных компонентов..."
|
||||
|
||||
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}"
|
||||
wine_run_install "${AUTOINSTALL_SETUP}" /qn
|
||||
|
||||
wine_run regedit "${ADDONS_PATH_REG}"/*.reg
|
||||
|
||||
# Установка ODBC
|
||||
rm -fR "$DRIVE_C/Program Files (x86)/Common Files/System"
|
||||
cp -r "${ADDONS_PATH_MDAC}/System" "$DRIVE_C/Program Files (x86)/Common Files/System"
|
||||
cp -r "${ADDONS_PATH_MDAC}"/*.* "$DRIVE_C/windows/system32/"
|
||||
wine_run regedit "${ADDONS_PATH_MDAC}"/*.reg
|
||||
|
||||
# Установка SSH
|
||||
cp -r "${ADDONS_PATH_OPENSSH}" "$DRIVE_C/windows/system32/"
|
||||
|
||||
try_remove_dir "$ADDONS_PATH"
|
||||
try_remove_file "$ADDONS_PACK"
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
try_remove_file "$AUTOINSTALL_EXE"
|
||||
|
||||
# Определение всех программ, значков и исполняемых файлов
|
||||
declare -a PROG_NAME=("Арбат" "Вест" "Глобальные настройки" "Декор" "Дискретная арматура" "Запрос" "Камин" "КоКон" "Комета" "Конструктор сечений" "Консул" "Конфигуратор лицензий" "Кристалл" "Кросс" "Куст" "Магнум" "Монолит" "Откос" "Пастернак" "Преобразование ед. измерений" "Cортамент металлопроката" "Расчет по формуле" "Редактор акселерограмм" "Редактор динамичности" "Редактор материалов" "Тонус" "Эквивалентное сечение" "SCAD++")
|
||||
@ -73,12 +32,37 @@ if try_download "https://scadhelp.ru/files/10/download" "${AUTOINSTALL_EXE}" ; t
|
||||
|
||||
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"
|
||||
create_desktop "${PROG_NAME[i]}" "${WIN_FILE_EXEC[i]}" "${PROG_ICON[i]}"
|
||||
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
|
||||
|
||||
print_info "Установка дополнительных компонентов..."
|
||||
|
||||
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}"
|
||||
wine_run_install "${AUTOINSTALL_SETUP}" /qn
|
||||
|
||||
wine_run regedit "${ADDONS_PATH_REG}"/*.reg
|
||||
|
||||
# Установка ODBC
|
||||
rm -fR "$DRIVE_C/Program Files (x86)/Common Files/System"
|
||||
cp -r "${ADDONS_PATH_MDAC}/System" "$DRIVE_C/Program Files (x86)/Common Files/System"
|
||||
cp -r "${ADDONS_PATH_MDAC}"/*.* "$DRIVE_C/windows/system32/"
|
||||
wine_run regedit "${ADDONS_PATH_MDAC}"/*.reg
|
||||
|
||||
# Установка 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
|
||||
|
102
autoinstall/t-flex-cad17-applications
Normal file
102
autoinstall/t-flex-cad17-applications
Normal file
@ -0,0 +1,102 @@
|
||||
#!/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"
|
||||
|
||||
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
|
||||
# Функция для распаковки файла
|
||||
unpack_file() {
|
||||
local archive="$1"
|
||||
7z x -y "$archive" -o"${UNPACK_APP}"
|
||||
}
|
||||
|
||||
# Функция для установки .msi файлов
|
||||
install_msi_files() {
|
||||
for msi_file in "${UNPACK_APP}"/*/*.msi; do
|
||||
if [[ -f "$msi_file" ]]; then
|
||||
echo "Установка $msi_file ..."
|
||||
wine_run_install "$msi_file" /q
|
||||
else
|
||||
echo "Нет .msi файлов для установки в ${UNPACK_APP}/*."
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Функция для кодирования URL
|
||||
encode_url() {
|
||||
local file_name="$1"
|
||||
echo "${file_name// /%20}" # Заменяем пробелы на %20
|
||||
}
|
||||
|
||||
# Вывод списка доступных файлов
|
||||
list_files() {
|
||||
echo "Доступные файлы для скачивания:"
|
||||
for i in "${!FILES[@]}"; do
|
||||
echo "$((i + 1)). ${FILES[$i]}"
|
||||
done
|
||||
}
|
||||
|
||||
# Скачивание одиночного файла
|
||||
download_single() {
|
||||
local index="$1"
|
||||
local file_name="${FILES[$((index - 1))]}"
|
||||
local file_url="$(encode_url "$file_name")"
|
||||
local output="${WH_TMP_DIR}/${file_name// /_}"
|
||||
|
||||
if try_download "$BASE_URL/$file_url" "$output"; then
|
||||
unpack_file "$output"
|
||||
fi
|
||||
}
|
||||
|
||||
# Скачивание всех файлов
|
||||
download_all() {
|
||||
for i in "${!FILES[@]}"; do
|
||||
download_single "$((i + 1))"
|
||||
done
|
||||
}
|
||||
|
||||
# Основное меню
|
||||
list_files
|
||||
echo "Выберите опцию:"
|
||||
echo "1. Скачать один файл и установить его."
|
||||
echo "2. Скачать все файлы и установить их."
|
||||
read -rp "Введите номер опции: " option
|
||||
|
||||
case "$option" in
|
||||
1)
|
||||
read -rp "Введите номер файла для скачивания (например, 1 для 'T-FLEX Analysis 17.zip'): " file_number
|
||||
if [[ "$file_number" =~ ^[0-9]+$ ]] && (( file_number >= 1 && file_number <= ${#FILES[@]} )); then
|
||||
download_single "$file_number"
|
||||
else
|
||||
echo "Неверный номер файла."
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
download_all
|
||||
;;
|
||||
*)
|
||||
echo "Неверный выбор. Попробуйте еще раз."
|
||||
;;
|
||||
esac
|
||||
|
||||
install_msi_files
|
||||
|
||||
try_remove_file ${WH_TMP_DIR}/*.zip
|
||||
try_remove_dir "${UNPACK_APP}"
|
101
autoinstall/t-flex-cad17-resources
Normal file
101
autoinstall/t-flex-cad17-resources
Normal file
@ -0,0 +1,101 @@
|
||||
#!/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"
|
||||
|
||||
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
|
||||
# Функция для распаковки файла
|
||||
unpack_file() {
|
||||
local archive="$1"
|
||||
7z x -y "$archive" -o"${UNPACK_RESOURCES}"
|
||||
}
|
||||
|
||||
# Функция для установки .msi файлов
|
||||
install_msi_files() {
|
||||
for msi_file in "${UNPACK_RESOURCES}"/*/*.msi; do
|
||||
if [[ -f "$msi_file" ]]; then
|
||||
echo "Установка $msi_file ..."
|
||||
wine_run_install "$msi_file" /q
|
||||
else
|
||||
echo "Нет .msi файлов для установки в ${UNPACK_RESOURCES}/unpack_dop/*."
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Функция для кодирования URL
|
||||
encode_url() {
|
||||
local file_name="$1"
|
||||
echo "${file_name// /%20}" # Заменяем пробелы на %20
|
||||
}
|
||||
|
||||
# Вывод списка доступных файлов
|
||||
list_files() {
|
||||
echo "Доступные файлы для скачивания:"
|
||||
for i in "${!FILES[@]}"; do
|
||||
echo "$((i + 1)). ${FILES[$i]}"
|
||||
done
|
||||
}
|
||||
|
||||
# Скачивание одиночного файла
|
||||
download_single() {
|
||||
local index="$1"
|
||||
local file_name="${FILES[$((index - 1))]}"
|
||||
local file_url="$(encode_url "$file_name")"
|
||||
local output="${WH_TMP_DIR}/${file_name// /_}"
|
||||
|
||||
if try_download "$BASE_URL/$file_url" "$output"; then
|
||||
unpack_file "$output"
|
||||
fi
|
||||
}
|
||||
|
||||
# Скачивание всех файлов
|
||||
download_all() {
|
||||
for i in "${!FILES[@]}"; do
|
||||
download_single "$((i + 1))"
|
||||
done
|
||||
}
|
||||
|
||||
# Основное меню
|
||||
list_files
|
||||
echo "Выберите опцию:"
|
||||
echo "1. Скачать один файл и установить его."
|
||||
echo "2. Скачать все файлы и установить их."
|
||||
read -rp "Введите номер опции: " option
|
||||
|
||||
case "$option" in
|
||||
1)
|
||||
read -rp "Введите номер файла для скачивания (например, 1 для 'T-FLEX Tutorial 17.zip'): " file_number
|
||||
if [[ "$file_number" =~ ^[0-9]+$ ]] && (( file_number >= 1 && file_number <= ${#FILES[@]} )); then
|
||||
download_single "$file_number"
|
||||
else
|
||||
echo "Неверный номер файла."
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
download_all
|
||||
;;
|
||||
*)
|
||||
echo "Неверный выбор. Попробуйте еще раз."
|
||||
;;
|
||||
esac
|
||||
|
||||
install_msi_files
|
||||
|
||||
try_remove_file ${WH_TMP_DIR}/*.zip
|
||||
try_remove_dir "${UNPACK_RESOURCES}"
|
@ -1,21 +0,0 @@
|
||||
#!/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
|
Binary file not shown.
Before Width: | Height: | Size: 27 KiB |
@ -63,8 +63,3 @@ 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
|
||||
|
149
winehelper
149
winehelper
@ -51,10 +51,6 @@ 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"
|
||||
@ -93,7 +89,7 @@ check_variables VKD3D_VER "1.1-2602"
|
||||
export CLOUD_URL="https://cloud.linux-gaming.ru/portproton"
|
||||
|
||||
##### CHECK NOEXEC FOR /HOME #####
|
||||
if grep -E "/home[[:space:]]" /etc/fstab | grep -q "noexec" ; then
|
||||
if grep "/home" /etc/fstab | grep -q "noexec" ; then
|
||||
fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine не возможен из домашнего каталога."
|
||||
fi
|
||||
|
||||
@ -361,7 +357,6 @@ 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
|
||||
@ -384,77 +379,24 @@ 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=WineHelper;"
|
||||
echo "Categories=Other;"
|
||||
echo "StartupNotify=true"
|
||||
echo "Path=$DATA_PATH"
|
||||
echo "Icon=$icon_file"
|
||||
} > "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||
chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||
} > "$USER_WORK_PATH/$name_desktop.desktop"
|
||||
chmod +x "$USER_WORK_PATH/$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
|
||||
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"
|
||||
|
||||
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
|
||||
&& [[ -f "$exe_file" ]]
|
||||
@ -474,26 +416,9 @@ EOF
|
||||
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 #####
|
||||
@ -1127,62 +1052,6 @@ run_autoinstall () {
|
||||
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 () {
|
||||
echo "Использование: $SCRIPT_NAME [команда]
|
||||
|
||||
@ -1193,7 +1062,6 @@ wh_info () {
|
||||
|
||||
installed список установленных программ
|
||||
run [программа.exe] запуск программы (отладка)
|
||||
remove удалить WineHelper и все связанные данные
|
||||
|
||||
Параметры:
|
||||
--help показать эту справку и выйти
|
||||
@ -1227,7 +1095,6 @@ 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")"
|
||||
|
Loading…
Reference in New Issue
Block a user