summaryrefslogtreecommitdiff
path: root/bin/shuffle
blob: ce27bb756165ba4f667feeb83b518ab0732ee726 (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
#!/bin/sh -eu

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

prev=-1
index=$((RANDOM % n))

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