summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Nystrom <sam@samnystrom.dev>2023-06-13 14:25:15 -0400
committerSam Nystrom <sam@samnystrom.dev>2023-06-13 14:29:21 -0400
commitd8fbaee5267ce3da587b5b65a6f90a2b985ec32a (patch)
treee4814bbb6373a66b92c6b288f14a8fe728b25f2c
parentebd975e8f1ac3a383d36130b07f8775589c3f609 (diff)
bin/shuffle: don't play the second-previous song
-rwxr-xr-xbin/shuffle18
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))