From 72dac44299e98117eaeeb589a8a591897e9045f9 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:29:24 +0900 Subject: modified bin/mounter --- ar/.local/bin/mounter | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'ar/.local/bin/mounter') diff --git a/ar/.local/bin/mounter b/ar/.local/bin/mounter index e143ef6..1f71df5 100755 --- a/ar/.local/bin/mounter +++ b/ar/.local/bin/mounter @@ -14,12 +14,17 @@ escape() { echo "$@" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | # Determine mount base: /mnt for internal drives, /media/$USER for external. mountbase() { local dev="$1" - # Resolve to parent disk (e.g., /dev/nvme0n1p2 -> /dev/nvme0n1). - local pkname - pkname="$(lsblk -no PKNAME "$dev" 2>/dev/null | head -1)" - [ -z "$pkname" ] && pkname="$(basename "$dev")" + # Resolve through device-mapper and partitions to the underlying disk. + local cur="$dev" + while true; do + local parent + parent="$(sudo lsblk -no PKNAME "$cur" 2>/dev/null | head -1)" + [ -z "$parent" ] && break + cur="/dev/$parent" + done local hotplug - hotplug="$(lsblk -dno HOTPLUG "/dev/$pkname" 2>/dev/null | head -1)" + hotplug="$(sudo lsblk -dno HOTPLUG "$cur" 2>/dev/null | head -1)" + printf "[DEBUG mountbase] dev=%s resolved=%s hotplug='%s'\n" "$dev" "$cur" "$hotplug" >&2 if [ "$hotplug" = "0" ]; then echo "/mnt" else @@ -53,12 +58,10 @@ attemptmount() { ntfs*) mountopts="-o uid=$(id -u),gid=$(id -g)" ;; *) mountopts="" ;; esac - if [ ! -d "$mp" ] && [ ! -d "/mnt/$mplabel" ]; then - getmount "$mp" && sudo -A mount $mountopts "$chosen" "$mp" >/dev/null 2>&1 || return 1 - elif [ -d "$mp" ] && [ ! -d "/mnt/$mplabel" ]; then + if [ -d "$mp" ]; then sudo -A mount $mountopts "$chosen" "$mp" >/dev/null 2>&1 || return 1 - elif [ -d "/mnt/$mplabel" ]; then - getmount "/mnt/$mplabel" && sudo -A mount $mountopts "$chosen" "/mnt/$mplabel" >/dev/null 2>&1 || return 1 + elif [ ! -d "$mp" ]; then + getmount "$mp" && sudo -A mount $mountopts "$chosen" "$mp" >/dev/null 2>&1 || return 1 else sudo -A mount $mountopts "$chosen" >/dev/null 2>&1 || return 1 fi -- cgit v1.2.3