summaryrefslogtreecommitdiff
path: root/bin/shuffle
blob: c611f32fef006a26d8d43662edd9d6ab7509a657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh -eu

prev2=-1
prev1=$prev2
index=$prev1

while :; do
	files=$(find "${1:-.}" -type f)
	n=$(echo "$files" | wc -l)

	while [ $index -eq $prev2 ] || [ $index -eq $prev1 ]; do
		index=$((RANDOM % n))
	done
	prev2=$prev1
	prev1=$index
	echo "$files" | (
		i=0
		while read -r file; do
			if [ $i -eq $index ]; then
				echo "Playing $file"
				mpv --no-video "$file" || :
				break
			fi
			i=$((i + 1))
		done
	)
done