summaryrefslogtreecommitdiff
path: root/ar/.local
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-09 13:29:24 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-09 13:29:24 +0900
commit72dac44299e98117eaeeb589a8a591897e9045f9 (patch)
treef9b500ae5e2ce7e020c06417ac53a2dd6fc464ba /ar/.local
parentf9935a981c06fe4acbb3763d15604c923fdbf475 (diff)
modified bin/mounterHEADmaster
Diffstat (limited to 'ar/.local')
-rwxr-xr-xar/.local/bin/mounter23
1 files changed, 13 insertions, 10 deletions
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