Compare commits

...

4 Commits

Author SHA1 Message Date
Sergey Palcheh
615bcdd95b speeding up the output of the install list 2025-07-09 12:44:13 +06:00
Mikhail Tergoev
33a181fe4f Merge branch 'minergenon-refactor/simplify-desktop-parsing' 2025-07-08 11:40:03 +03:00
Mikhail Tergoev
dfe41ea9c2 create_desktop: fixed nocopy 2025-07-08 11:38:03 +03:00
Sergey Palcheh
e649261ff9 refactor simplify desktop parsing 2025-07-08 14:22:57 +06:00

View File

@@ -433,10 +433,10 @@ var_ld_library_path_update () {
} }
create_desktop () { create_desktop () {
local name_desktop exe_file desktop_filename icon_file local name_desktop exe_file desktop_filename icon_file desktop_path
name_desktop="$1" name_desktop="$1"
exe_file="$2" exe_file="$2"
if [[ -n $4 ]] ; if [[ -n $4 ]] && [[ $4 != "nocopy" ]];
then desktop_filename="$4" then desktop_filename="$4"
else desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")" else desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
fi fi
@@ -496,7 +496,6 @@ create_desktop () {
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list" echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
fi fi
# создаем файл категории для меню # создаем файл категории для меню
create_new_dir "$HOME/.local/share/desktop-directories" create_new_dir "$HOME/.local/share/desktop-directories"
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
@@ -531,14 +530,8 @@ EOF
update-desktop-database "$HOME/.local/share/applications" update-desktop-database "$HOME/.local/share/applications"
if [[ $4 != "nocopy" ]] ; then if [[ $4 != "nocopy" ]] ; then
if [[ -n $4 ]] ; then desktop_path="$(xdg-user-dir DESKTOP)"
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" print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
fi
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path" cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
else else
print_info "В меню создан $desktop_filename.desktop" print_info "В меню создан $desktop_filename.desktop"
@@ -1288,21 +1281,35 @@ run_autoinstall () {
export INSTALL_SCRIPT INSTALL_MODE export INSTALL_SCRIPT INSTALL_MODE
if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then if [[ $INSTALL_SCRIPT_NAME == "list" ]] || [[ -z "$INSTALL_SCRIPT_NAME" ]] ; then
print_info "Список программ с возможностью автоматической установки:"
for list in $(ls "$WH_AUTOINSTALL_DIR") ; do list_install_scripts() {
AI_INFO="$(grep "info_ru:" "$WH_AUTOINSTALL_DIR/$list" | awk -F"info_ru: " '{print $2}')" local dir="$1"
AI_PROGNAME="$(grep "PROG_NAME=" "$WH_AUTOINSTALL_DIR/$list" | awk -F"PROG_NAME=" '{print $2}')" local title="$2"
echo -e "\n$list - $AI_PROGNAME" [[ ! -d "$dir" ]] || [[ -z "$(ls -A "$dir" 2>/dev/null)" ]] && return
echo "$AI_INFO"
done print_info "$title"
awk '
FNR==1 {
if (progname) {
printf "\n%s - %s\n%s\n", filename, progname, info
}
progname=""; info=""; filename=FILENAME
sub(".*/", "", filename)
}
/info_ru:/ { sub(/.*info_ru: /, ""); info=$0 }
/PROG_NAME=/ { sub(/.*PROG_NAME=/, ""); progname=$0 }
END {
if (progname) {
printf "\n%s - %s\n%s\n", filename, progname, info
}
}
' "$dir"/*
}
list_install_scripts "$WH_AUTOINSTALL_DIR" "Список программ с возможностью автоматической установки:"
echo echo
print_info "Список программ с возможностью установки из существующего дистрибутива:" list_install_scripts "$WH_MANUALINSTALL_DIR" "Список программ с возможностью установки из существующего дистрибутива:"
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 elif [[ "$INSTALL_SCRIPT" != "0" ]] ; then
source "$INSTALL_SCRIPT" "$@" source "$INSTALL_SCRIPT" "$@"
print_info "Завершена установка $INSTALL_SCRIPT_NAME" print_info "Завершена установка $INSTALL_SCRIPT_NAME"
@@ -1592,10 +1599,7 @@ restore_prefix() {
print_info "Восстановление ярлыков для префикса $prefix_name..." print_info "Восстановление ярлыков для префикса $prefix_name..."
export RESTORE_FROM_BACKUP="1" # Устанавливаем флаг восстановления export RESTORE_FROM_BACKUP="1" # Устанавливаем флаг восстановления
while IFS='=' read -r line; do while IFS='=' read -r name_desktop exe_path icon_name ; do
local name_desktop=$(echo "$line" | cut -d'=' -f1)
local exe_path=$(echo "$line" | cut -d'=' -f2)
local icon_name=$(echo "$line" | cut -d'=' -f3)
local full_exe_path="$WH_PREFIXES_DIR/$prefix_name${exe_path}" local full_exe_path="$WH_PREFIXES_DIR/$prefix_name${exe_path}"
local full_icon_path="$WH_PREFIXES_DIR/$prefix_name/icons/$icon_name" local full_icon_path="$WH_PREFIXES_DIR/$prefix_name/icons/$icon_name"