From e1cf0ba26fd125f87bcb7c2031291b214e08289c Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 23 Dec 2022 09:15:21 +0100 Subject: [PATCH] feat: am one binary and clear output --- bin/am | 31 +++++++++++++++++++++++++------ bin/dm | 30 ------------------------------ 2 files changed, 25 insertions(+), 36 deletions(-) delete mode 100755 bin/dm diff --git a/bin/am b/bin/am index 5f6f58e..2cf1428 100755 --- a/bin/am +++ b/bin/am @@ -3,16 +3,35 @@ set -e # TODO # - mount all partitions by selecting disk -# - hide already mounted partitions # - usage # - one device per line # - support for /mnt +# - colors ? -readarray -t LSBLK <<< "$(lsblk -n --paths --list | grep part)" +function clear_output() { + local len="$1" -select dev in "${LSBLK[@]}"; do - name="$(cut -f1 -d' ' <<< "$dev")" + for _ in $(seq 0 "$len"); do + printf '\e[1A\e[K' + done +} - udisksctl mount -b "$name" - echo "$name" >> /tmp/automount +if ! [ -t 1 ]; then + exit 1 +fi + +while true; do + readarray -t LSBLK <<< "$(lsblk -n --paths --list | grep part)" + + select dev in "${LSBLK[@]}"; do + name="$(cut -f1 -d' ' <<< "$dev")" + + if mount | grep -q "$name"; then + umount "$name" + else + udisksctl mount -b "$name" > /dev/null + fi + clear_output "${#LSBLK[@]}" + break + done || exit done diff --git a/bin/dm b/bin/dm deleted file mode 100755 index febdf79..0000000 --- a/bin/dm +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -set -e - -function unmount() { - local name - - for dev in "$@"; do - name="$(cut -f1 -d' ' <<< "$dev")" - - umount "$name" - sed -i "\\|$name|d" /tmp/automount - done -} - -readarray -t LSBLK <<< "$(lsblk --paths --list | grep -f /tmp/automount)" - -while getopts a o; do - case "$o" in - a) - unmount "${LSBLK[@]}" - exit 0 - ;; - *) - ;; - esac -done - -select dev in "${LSBLK[@]}"; do - unmount "$dev" -done