forked from CastroFidel/winehelper
added function: find_prefix
This commit is contained in:
29
winehelper
29
winehelper
@@ -509,6 +509,18 @@ var_ld_library_path_update () {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_prefix () {
|
||||||
|
# Автоматическое определение префикса, если он не задан
|
||||||
|
if [[ -z "$WINEPREFIX" ]] && [[ "$1" == "$WH_PREFIXES_DIR"* ]]; then
|
||||||
|
local extracted_prefix
|
||||||
|
extracted_prefix="$(echo "$1" | grep -o ".*/prefixes/[^/]*")"
|
||||||
|
if [[ -d "$extracted_prefix" ]]; then
|
||||||
|
export WINEPREFIX="$extracted_prefix"
|
||||||
|
print_info "Префикс автоматически определен: $(basename "$WINEPREFIX")"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
create_desktop () {
|
create_desktop () {
|
||||||
local name_desktop exe_file desktop_filename icon_file desktop_path icon_arg desktop_filename_arg
|
local name_desktop exe_file desktop_filename icon_file desktop_path icon_arg desktop_filename_arg
|
||||||
name_desktop="$1"
|
name_desktop="$1"
|
||||||
@@ -525,7 +537,7 @@ create_desktop () {
|
|||||||
|
|
||||||
# Проверяем обязательные аргументы и наличие exe-файла
|
# Проверяем обязательные аргументы и наличие exe-файла
|
||||||
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
|
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
|
||||||
fatal "Использование: $0 create-desktop \"Имя ярлыка\" \"/путь/к/файлу.exe\" [иконка|auto] [имя_desktop_файла]"
|
fatal "Использование: $0 desktop \"Имя ярлыка\" \"/путь/к/файлу.exe\" [иконка|auto] [имя_desktop_файла]"
|
||||||
elif [[ ! -f "$exe_file" ]] ; then
|
elif [[ ! -f "$exe_file" ]] ; then
|
||||||
print_warning "Для создания ярлыка не найден исполняемый файл: $exe_file"
|
print_warning "Для создания ярлыка не найден исполняемый файл: $exe_file"
|
||||||
|
|
||||||
@@ -545,6 +557,8 @@ create_desktop () {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
find_prefix "$exe_file"
|
||||||
|
|
||||||
# --- Логика обработки иконки ---
|
# --- Логика обработки иконки ---
|
||||||
local user_icons_dir="$WINEPREFIX/icons"
|
local user_icons_dir="$WINEPREFIX/icons"
|
||||||
create_new_dir "$user_icons_dir"
|
create_new_dir "$user_icons_dir"
|
||||||
@@ -2064,17 +2078,8 @@ case "$arg1" in
|
|||||||
*)
|
*)
|
||||||
if [[ -f "$arg1" ]] ; then
|
if [[ -f "$arg1" ]] ; then
|
||||||
WIN_FILE_EXEC="$(readlink -f "$arg1")"
|
WIN_FILE_EXEC="$(readlink -f "$arg1")"
|
||||||
|
WIN_FILE_NAME="$(basename "$WIN_FILE_EXEC")"
|
||||||
# Автоматическое определение префикса, если он не задан
|
find_prefix "$WIN_FILE_EXEC"
|
||||||
if [[ -z "$WINEPREFIX" ]] && [[ "$WIN_FILE_EXEC" == "$WH_PREFIXES_DIR"* ]]; then
|
|
||||||
extracted_prefix="$(echo "$WIN_FILE_EXEC" | grep -o ".*/prefixes/[^/]*")"
|
|
||||||
if [[ -d "$extracted_prefix" ]]; then
|
|
||||||
export WINEPREFIX="$extracted_prefix"
|
|
||||||
print_info "Префикс автоматически определен: $(basename "$WINEPREFIX")"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
WIN_FILE_NAME="$(basename "$arg1")"
|
|
||||||
case "${WIN_FILE_NAME,,}" in
|
case "${WIN_FILE_NAME,,}" in
|
||||||
*.exe) prepair_wine ; wine_run $WINE_WIN_START "$WIN_FILE_EXEC" "$@" ;;
|
*.exe) prepair_wine ; wine_run $WINE_WIN_START "$WIN_FILE_EXEC" "$@" ;;
|
||||||
*.msi) prepair_wine ; wine_run msiexec /i "$WIN_FILE_EXEC" "$@" ;;
|
*.msi) prepair_wine ; wine_run msiexec /i "$WIN_FILE_EXEC" "$@" ;;
|
||||||
|
Reference in New Issue
Block a user