.dotfiles/bin/am
2023-01-09 17:14:08 +01:00

69 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
# TODO
# mount all partitions by selecting disk
# usage
# support for /mnt
printf '\e[6n'
read -sdRr ROW
ROW="${ROW#*[}"
ROW="${ROW%;*}"
ROW="$((ROW + 1))"
function clear_output() {
local row
local len="$1"
printf '\e[6n'
read -sdRr row
row="${row#*[}"
row="${row%;*}"
for _ in $(seq 0 "$((row - ROW))"); do
printf '\e[1A\e[K'
done
}
function umount_all() {
local disks
disks=($(mount | grep udisks2 | cut -f1 -d' '))
umount "${disks[@]}"
echo "unmounted ${disks[*]}"
}
if ! [ -t 1 ]; then
exit 1
fi
while getopts a o; do
case "$o" in
a)
umount_all
exit
;;
*)
;;
esac
done
while true; do
#readarray -t LSBLK <<< "$(lsblk -n --paths | grep -v snap)"
readarray -t LSBLK <<< "$(lsblk -n --paths --list | grep part)"
COLUMNS=1
select dev in "${LSBLK[@]}"; do
name="$(cut -f1 -d' ' <<< "$dev")"
clear_output
if mount | grep -q "$name"; then
umount "$name"
else
udisksctl mount -b "$name" > /dev/null
fi
break
done || exit
done