nix

configuration files that power my machines
Log | Files | Refs | README | LICENSE

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