diff --git a/mus.sh b/mus.sh index ab84fef..7a9edce 100755 --- a/mus.sh +++ b/mus.sh @@ -5,7 +5,9 @@ [ -z "$PLAYER" ] && PLAYER='mpg123' [ -z "$FTYPES" ] && FTYPES='mp3 MP3' - +if [ -z "$TAGDUMP" ]; then + TAGDUMP='mpg123-id3dump -n {} | grep -E "^(Title|Artist|Album|Year|Comment|Genre):" | sort -u' +fi mdir="$1" [ -z "$mdir" ] && mdir='.' set -- @@ -16,16 +18,13 @@ for ext in $FTYPES; do set -- "$@" -o -name "*.$ext" fi done - cd "$mdir" -echo "Indexing music..." muslist="$(find . -type f \( "$@" \))" dirlist="$(find . -type f \( "$@" \) -print0 | xargs -0 dirname | sort -u)" muslist="$(printf '%s\n%s' "$muslist" "$dirlist" | sort -u)" -echo "Indexing complete" - +PREVIEWCMD="[ -d {} ] && ls -1 {} || ([ {} != 'Quit' ] && $TAGDUMP)" while true; do - src="$(printf '%s\nQuit' "$muslist" | fzf --tac -0 -1)" + src="$(printf '%s\nQuit' "$muslist" | fzf --tac --preview="$PREVIEWCMD" -0 -1)" [ -d "$src" ] && src="$(find "$src" -type f \( "$@" \) | sort -u)" [ "$src" = 'Quit' ] && break if [ -n "$src" ]; then