added prefix removal

This commit is contained in:
Sergey Palcheh 2025-05-27 12:18:01 +06:00
parent 717e6c0e7d
commit ca9e1d7f75

View File

@ -1215,6 +1215,66 @@ run_autoinstall () {
echo
}
##### REMOVE PREFIX #####
remove_prefix() {
local prefix_name="$1"
local prefix_path="$WH_PREFIXES_DIR/$prefix_name"
if [[ -z "$prefix_name" ]]; then
print_error "Не указано имя префикса для удаления."
echo "Использование: $SCRIPT_NAME remove-prefix [имя_префикса]"
echo "Доступные префиксы:"
ls -1 "$WH_PREFIXES_DIR"
return 1
fi
if [[ ! -d "$prefix_path" ]]; then
print_error "Префикс "$prefix_name" не найден."
return 1
fi
echo "======================================================"
print_warning "Вы собираетесь удалить префикс "$prefix_name"."
echo "Это приведёт к:"
echo " - Полному удалению всех данных префикса"
echo " - Удалению всех программ, установленных в этом префиксе"
echo " - Удалению связанных ярлыков из меню и рабочего стола"
echo "======================================================"
read -p "Продолжить удаление? (y/N): " answer
if [[ ! "$answer" =~ ^[YyДд]$ ]]; then
print_info "Удаление префикса отменено."
return 0
fi
echo "----------------------------------------------"
print_warning " ВЫ ТОЧНО УВЕРЕНЫ?"
echo "----------------------------------------------"
read -p "Продолжить удаление? (y/N): " answer
if [[ ! "$answer" =~ ^[YyДд]$ ]]; then
print_info "Удаление префикса отменено."
return 0
fi
try_remove_dir "$prefix_path"
if [[ $? -eq 0 ]]; then
print_ok "Префикс "$prefix_name" успешно удален."
for desktop_file in "$WH_MENU_DIR"/*.desktop; do
if grep -q "$prefix_path" "$desktop_file"; then
desktop_name=$(basename "$desktop_file")
remove_desktop "${desktop_name%.*}"
fi
done
return 0
else
print_error "Не удалось удалить префикс "$prefix_name"."
return 1
fi
}
##### REMOVE WINEHELPER #####
remove_winehelper () {
local answer
@ -1282,6 +1342,7 @@ wh_info () {
installed список установленных программ
run [программа.exe] запуск программы (отладка)
remove удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные
Параметры:
--help показать эту справку и выйти
@ -1316,6 +1377,7 @@ case "${1,,}" in
installed) shift ; check_installed_programs "$1" ;;
run|-r) shift ; run_installed_programs "$1" ;;
remove|--remove) remove_winehelper ;;
remove-prefix) shift ; remove_prefix "$@" ;;
*)
if [[ -f "$1" ]] ; then
WIN_FILE_EXEC="$(readlink -f "$1")"