extension of the remote_desktop function
This commit is contained in:
36
winehelper
36
winehelper
@ -494,23 +494,47 @@ 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"
|
||||
local desktop_display_name="$*" # Объединяем все аргументы в одну строку
|
||||
local desktop_filename=""
|
||||
|
||||
if [[ -n "$desktop_display_name" ]] ; then
|
||||
# Ищем файл ярлыка по его отображаемому имени (полю Name=)
|
||||
for file in "$WH_MENU_DIR"/*.desktop; do
|
||||
if [[ -f "$file" ]] && grep -q -E "^Name=${desktop_display_name}$" "$file"; then
|
||||
desktop_filename=$(basename "$file" .desktop)
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "$desktop_filename" ]]; then
|
||||
print_error "Ярлык с именем \"$desktop_display_name\" не найден."
|
||||
return 1
|
||||
fi
|
||||
|
||||
print_info "Найден ярлык: $desktop_filename.desktop. Удаление..."
|
||||
# Используем найденное имя файла для удаления из всех мест
|
||||
try_remove_file "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||
try_remove_file "$WH_MENU_DIR/$desktop_filename.desktop"
|
||||
try_remove_file "$HOME/.local/share/applications/$desktop_filename.desktop"
|
||||
try_remove_file "$(xdg-user-dir DESKTOP)/$desktop_filename.desktop"
|
||||
else
|
||||
print_error "Не указано имя ярлыка для удаления."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Удаляем категорию если она пуста
|
||||
if [[ -d "$WH_MENU_DIR" ]] && [[ -z "$(ls -A "$WH_MENU_DIR")" ]]; then
|
||||
print_info "Категория WineHelper пуста, удаляем ее из меню."
|
||||
try_remove_dir "$WH_MENU_DIR"
|
||||
try_remove_file "$WH_MENU_CATEGORY"
|
||||
try_remove_file "$WH_MENU_CONFIG"
|
||||
fi
|
||||
|
||||
# Обновляем кэш desktop файлов
|
||||
print_info "Обновление базы данных приложений..."
|
||||
update-desktop-database "$HOME/.local/share/applications"
|
||||
|
||||
print_ok "Удаление ярлыка \"$desktop_display_name\" завершено."
|
||||
}
|
||||
|
||||
check_installed_programs () {
|
||||
@ -1508,6 +1532,7 @@ wh_info () {
|
||||
remove-all удалить WineHelper и все связанные данные
|
||||
remove-prefix [имя_префикса] удалить префикс и все связанные данные
|
||||
backup-prefix [имя_префикса] создать резерную копию префикса
|
||||
remove-desktop [имя_ярлыка] удалить ярлык по имени (без .desktop)
|
||||
restore-prefix \"путь/до/whpack\" восстановить префикс из резервной копии
|
||||
|
||||
Параметры:
|
||||
@ -1552,6 +1577,7 @@ case "$arg1" in
|
||||
backup-prefix) backup_prefix "$@" ;;
|
||||
restore-prefix) restore_prefix "$@" ;;
|
||||
remove-all) remove_winehelper "$@" ;;
|
||||
remove-desktop) remove_desktop "$@" ;;
|
||||
remove-prefix) remove_prefix "$@" ;;
|
||||
*)
|
||||
if [[ -f "$arg1" ]] ; then
|
||||
|
Reference in New Issue
Block a user