]> git.armaanb.net Git - bin.git/blob - fmt-music
xsel: new script
[bin.git] / fmt-music
1 #!/usr/bin/sh -e
2 # Turns a nested hierarchy of music files into a flat one
3
4 find "${1:-.}" -regex '.*\.\(mp3\|ogg\|wav\|aac\|wma\|flac\|alac\)' -type f | \
5                 while read line; do
6                                 newline=$(echo $line | sed -E -e 's|[[:space:]]?-[[:space:]]?|_|g' \
7                                                                                                                                          -e 's/  */ /g')
8
9                                 o=$(echo -n $(dirname "$newline") | sed -e 's|\./||g' -e 's|/| - |g')
10
11                                 first=$(echo -n $(basename "$newline") | cut -d " " -f 1)
12                                 if $(echo $first | grep -Eq '^[0-9]+$'); then
13                                                 o="$o $(echo -n "- $first -")"
14                                                 num=2
15                                 else
16                                                 o="$o -"
17                                                 num=1
18                                 fi
19
20                                 o="$o $(echo -n $(basename "$newline") | cut -d " " -f ${num}-)"
21                                 cp -v "$line" "${2:-.}/$o"
22                 done