From 74aabdfb75864b0659e7a8e52a93a66bf107bcb5 Mon Sep 17 00:00:00 2001 From: AngeD Date: Mon, 9 Jan 2023 17:14:08 +0100 Subject: [PATCH] feat: am error printing --- bin/am | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/bin/am b/bin/am index 2f6fcb2..b7e1e8b 100755 --- a/bin/am +++ b/bin/am @@ -5,28 +5,39 @@ set -e # mount all partitions by selecting disk # usage # support for /mnt -# error handling (fs in use...) +printf '\e[6n' +read -sdRr ROW +ROW="${ROW#*[}" +ROW="${ROW%;*}" +ROW="$((ROW + 1))" function clear_output() { + local row 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' done } -if ! [ -t 1 ]; then - exit 1 -fi - 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) @@ -46,12 +57,12 @@ while true; do 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 - clear_output "${#LSBLK[@]}" break done || exit done