feat: am error printing

This commit is contained in:
AngeD 2023-01-09 17:14:08 +01:00
parent 42b67eedb0
commit 74aabdfb75

25
bin/am
View File

@ -5,28 +5,39 @@ set -e
# mount all partitions by selecting disk # mount all partitions by selecting disk
# usage # usage
# support for /mnt # support for /mnt
# error handling (fs in use...)
printf '\e[6n'
read -sdRr ROW
ROW="${ROW#*[}"
ROW="${ROW%;*}"
ROW="$((ROW + 1))"
function clear_output() { function clear_output() {
local row
local len="$1" local len="$1"
for _ in $(seq 0 "$len"); do printf '\e[6n'
read -sdRr row
row="${row#*[}"
row="${row%;*}"
for _ in $(seq 0 "$((row - ROW))"); do
printf '\e[1A\e[K' printf '\e[1A\e[K'
done done
} }
if ! [ -t 1 ]; then
exit 1
fi
function umount_all() { function umount_all() {
local disks local disks
disks=($(mount | grep udisks2 | cut -f1 -d' ')) disks=($(mount | grep udisks2 | cut -f1 -d' '))
umount "${disks[@]}" umount "${disks[@]}"
echo "unmounted ${disks[*]}" echo "unmounted ${disks[*]}"
} }
if ! [ -t 1 ]; then
exit 1
fi
while getopts a o; do while getopts a o; do
case "$o" in case "$o" in
a) a)
@ -46,12 +57,12 @@ while true; do
select dev in "${LSBLK[@]}"; do select dev in "${LSBLK[@]}"; do
name="$(cut -f1 -d' ' <<< "$dev")" name="$(cut -f1 -d' ' <<< "$dev")"
clear_output
if mount | grep -q "$name"; then if mount | grep -q "$name"; then
umount "$name" umount "$name"
else else
udisksctl mount -b "$name" > /dev/null udisksctl mount -b "$name" > /dev/null
fi fi
clear_output "${#LSBLK[@]}"
break break
done || exit done || exit
done done