mntmenu (694B)
1 #!/usr/bin/env bash 2 3 MNT_BASE="$HOME/misc/mnt/disk" 4 5 label=$( 6 for lbl in /dev/disk/by-label/*; do 7 lbl=$(basename "$lbl") 8 [[ "$lbl" =~ ^(home|root)$ ]] && continue 9 mountpoint -q "$MNT_BASE/$(echo "$lbl" | tr '[:upper:]' '[:lower:]')" 2>/dev/null && 10 echo "$lbl (already mounted)" || echo "$lbl" 11 done | fzf 12 ) || exit 0 13 label=${label% (already mounted)} 14 15 lower=$(echo "$label" | tr '[:upper:]' '[:lower:]') 16 target="$MNT_BASE/$lower" 17 18 if mountpoint -q "$target"; then 19 sudo umount "$target" && echo "unmounted $target" 20 else 21 mkdir -p "$target" 22 sudo mount -o uid="$(id -u)",gid="$(id -g)" "/dev/disk/by-label/$label" "$target" && 23 echo "mounted /dev/disk/by-label/$label → $target" 24 fi