commit b004286f4933a75b540ea36c632f623404f71066 parent 78c695fadbd5fd8085ea0cccdcf679495682035d Author: mtmn <miro@haravara.org> Date: Mon, 20 Apr 2026 21:10:36 +0200 dotfiles: add mntmenu Diffstat:
| A | modules/mixins/dotfiles/bin/mntmenu | | | 24 | ++++++++++++++++++++++++ |
1 file changed, 24 insertions(+), 0 deletions(-)
diff --git a/modules/mixins/dotfiles/bin/mntmenu b/modules/mixins/dotfiles/bin/mntmenu @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +MNT_BASE="$HOME/misc/mnt/disk" + +label=$( + for lbl in /dev/disk/by-label/*; do + lbl=$(basename "$lbl") + [[ "$lbl" =~ ^(home|root)$ ]] && continue + mountpoint -q "$MNT_BASE/$(echo "$lbl" | tr '[:upper:]' '[:lower:]')" 2>/dev/null && + echo "$lbl (already mounted)" || echo "$lbl" + done | fzf +) || exit 0 +label=${label% (already mounted)} + +lower=$(echo "$label" | tr '[:upper:]' '[:lower:]') +target="$MNT_BASE/$lower" + +if mountpoint -q "$target"; then + sudo umount "$target" && echo "unmounted $target" +else + mkdir -p "$target" + sudo mount -o uid="$(id -u)",gid="$(id -g)" "/dev/disk/by-label/$label" "$target" && + echo "mounted /dev/disk/by-label/$label → $target" +fi