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