sorter.sh: make it POSIX-compliant

This commit is contained in:
dogeystamp 2023-04-22 11:56:13 -04:00
parent 1f4782b975
commit 0cc16426f2
Signed by: dogeystamp
GPG Key ID: 7225FE3592EFFA38

View File

@ -1,6 +1,27 @@
#!/bin/sh
# Categorize files in the quarantine directory
# read -n 1 isn't POSIX-compliant so we implement something
# https://unix.stackexchange.com/questions/464930/can-i-read-a-single-character-from-stdin-in-posix-shell
readc() {
# return a single character from input
# if tty
if [ -t 0 ]; then
# save settings
saved_settings="$(stty -g)"
# make it so we get the character even if no enter press
stty -icanon
fi
dd bs=1 count=1 2>/dev/null
if [ -t 0 ]; then
# restore settings
stty "$saved_settings"
fi
}
view() {
mpv --no-resume-playback "$1"
}
@ -61,7 +82,7 @@ while read -r FILE; do
printf "send to: %s\n" "$DESTPATH"
printf "\nh view again, j set directory, k set name, l confirm, L confirm and preserve information\n q exit, s skip, d move to trash\n"
printf "\n> "
read -n 1 ANS < /dev/tty
ANS="$(readc </dev/tty)"
case "$ANS" in
q ) exit;;
h ) view "$FILE";;