separated install scripts

This commit is contained in:
Mikhail Tergoev 2025-04-01 17:10:52 +03:00
parent 7dac3a048a
commit 30c7ce02b4

@ -49,6 +49,7 @@ WH_TMP_DIR="$USER_WORK_PATH/tmp"
WH_IMAGE_PATH="$DATA_PATH/image"
WH_DB_DIR="$DATA_PATH/database"
WH_AUTOINSTALL_DIR="$DATA_PATH/autoinstall"
WH_MANUALINSTALL_DIR="$DATA_PATH/manualinstall"
# export WINEDLLOVERRIDES=mshtml,mscoree="
@ -95,8 +96,6 @@ fi
export CLOUD_URL="https://cloud.linux-gaming.ru/portproton"
export WH_AUTOINSTALL="0"
##### CHECK NOEXEC FOR /HOME #####
if grep "/home" /etc/fstab | grep -q "noexec" ; then
fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine не возможен из домашнего каталога."
@ -406,14 +405,14 @@ create_desktop () {
cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$(xdg-user-dir DESKTOP)"
print_info "На рабочем столе создан $name_desktop.desktop"
if [[ "$USE_AI_SCRIPTS" == "1" ]] \
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
&& [[ -f "$exe_file" ]]
then
{
echo '#!/usr/bin/env bash'
echo "# cmd_name: $AI_SCRIPT"
echo "# cmd_name: $INSTALL_SCRIPT_NAME"
} > "$exe_file".whdb
grep -e "info_" -e "#####" -e "export" -e "var_" "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" \
grep -e "info_" -e "#####" -e "export" -e "var_" "$INSTALL_SCRIPT" \
| grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \
| awk '{$1=$1;print}' >> "$exe_file".whdb
print_info "Создан файл настроек для $exe_file"
@ -476,10 +475,10 @@ init_wined3d () {
try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll"
try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll"
done
if [[ "$USE_RENDERER" == "damavand" ]]
then export WINE_D3D_CONFIG="renderer=vulkan"
else export WINE_D3D_CONFIG="renderer=gl"
fi
# if [[ "$USE_RENDERER" == "damavand" ]]
# then export WINE_D3D_CONFIG="renderer=vulkan"
# else export WINE_D3D_CONFIG="renderer=gl"
# fi
return 0
else
return 1
@ -834,7 +833,9 @@ init_database () {
}
prepair_wine () {
if [[ "$WH_AUTOINSTALL" == 1 ]] ; then
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
&& [[ "$FORCE_INSTALL" != "1" ]]
then
print_warning "Лицензионные соглашения использования сторонних компонентов:
Некоторые компоненты, установленные в префикс и необходимые для запуска приложений, могут
@ -883,7 +884,9 @@ wine_run () {
wine_run_install () {
print_info "Запускаем установку приложения $PROG_NAME."
print_warning "Рекомендуется не менять пути для установки приложения!"
if [[ "$INSTALL_MODE" == "manual" ]]
then print_warning "Рекомендуется не менять пути для установки приложения!"
fi
[[ ! -f "$1" ]] && fatal "Нет файла для установки: $1"
case "${1,,}" in
*.exe) wine_run $WINE_WIN_START "$@" ;;
@ -901,8 +904,20 @@ run_autoinstall () {
elif [[ $2 == "--clear-pfx" ]] ; then
export CLEAR_PREFIX="1"
fi
AI_SCRIPT="${1,,}"
if [[ $AI_SCRIPT == "list" ]] || [[ -z "$AI_SCRIPT" ]] ; then
INSTALL_SCRIPT_NAME="${1,,}"
if [[ -f "$WH_AUTOINSTALL_DIR/$INSTALL_SCRIPT_NAME" ]] ; then
INSTALL_SCRIPT="$WH_AUTOINSTALL_DIR/$INSTALL_SCRIPT_NAME"
WH_INSTALL_MODE="auto"
elif [[ -f "$WH_MANUALINSTALL_DIR/$INSTALL_SCRIPT_NAME" ]] ; then
INSTALL_SCRIPT="$WH_MANUALINSTALL_DIR/$INSTALL_SCRIPT_NAME"
WH_INSTALL_MODE="manual"
else
INSTALL_SCRIPT="0"
fi
export INSTALL_SCRIPT INSTALL_MODE
if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then
echo "Список программ с возможностью автоматической установки:"
for list in $(ls "$WH_AUTOINSTALL_DIR") ; do
AI_INFO="$(grep "info_ru:" "$WH_AUTOINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')"
@ -911,12 +926,11 @@ run_autoinstall () {
echo "$AI_INFO"
done
echo
elif [[ -f "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" ]] ; then
export USE_AI_SCRIPTS="1"
source "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" "$@"
print_info "Завершена установка $AI_SCRIPT"
elif [[ "$INSTALL_SCRIPT" != "0" ]] ; then
source "$INSTALL_SCRIPT" "$@"
print_info "Завершена установка $INSTALL_SCRIPT_NAME"
else
fatal "Скрипт автоматической установки для $AI_SCRIPT не найден!"
fatal "Скрипт автоматической установки для $INSTALL_SCRIPT_NAME не найден!"
fi
}
@ -924,17 +938,17 @@ wh_info () {
echo "Использование: $SCRIPT_NAME [команда]
Команды:
install|-i list список возможных установочных скриптов
install|-i [скрипт] запустить скрипт установки программы
install|-i [скрипт] --clear-pfx не использовать подготовленный префикс для установки ПО
install list список возможных установочных скриптов
install [скрипт] запустить скрипт установки программы
install [скрипт] --clear-pfx не использовать подготовленный префикс для установки ПО
installed|run список установленных программ
run [программа.exe] запуск программы (отладка)
installed список установленных программ
run [программа.exe] запуск программы (отладка)
Параметры:
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
"
}