diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/shuffle | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/bin/shuffle b/bin/shuffle index ce27bb7..c611f32 100755 --- a/bin/shuffle +++ b/bin/shuffle @@ -1,22 +1,24 @@ #!/bin/sh -eu -files=$(find "${1:-.}" -type f) -n=$(echo "$files" | wc -l) - -prev=-1 -index=$((RANDOM % n)) +prev2=-1 +prev1=$prev2 +index=$prev1 while :; do - while [ $index -eq $prev ]; do + files=$(find "${1:-.}" -type f) + n=$(echo "$files" | wc -l) + + while [ $index -eq $prev2 ] || [ $index -eq $prev1 ]; do index=$((RANDOM % n)) done - prev=$index + prev2=$prev1 + prev1=$index echo "$files" | ( i=0 while read -r file; do if [ $i -eq $index ]; then echo "Playing $file" - mpv "$file" || : + mpv --no-video "$file" || : break fi i=$((i + 1)) |
