]> git.armaanb.net Git - bin.git/commitdiff
fmt-music: add script
authorArmaan Bhojwani <me@armaanb.net>
Sun, 21 Mar 2021 03:22:31 +0000 (23:22 -0400)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 21 Mar 2021 03:23:12 +0000 (23:23 -0400)
Flattens a directory of music.

fmt-music [new file with mode: 0755]

diff --git a/fmt-music b/fmt-music
new file mode 100755 (executable)
index 0000000..e578a03
--- /dev/null
+++ b/fmt-music
@@ -0,0 +1,21 @@
+#!/usr/bin/sh -e
+
+find "${1:-.}" -regex '.*\.\(mp3\|ogg\|wav\|aac\|wma\|flac\|alac\)' -type f | \
+  while read line; do
+    newline=$(echo $line | sed -E -e 's|[[:space:]]?-[[:space:]]?|_|g' \
+      -e 's/  */ /g')
+
+    o=$(echo -n $(dirname "$newline") | sed -e 's|\./||g' -e 's|/| - |g')
+
+    first=$(echo -n $(basename "$newline") | cut -d " " -f 1)
+    if $(echo $first | grep -Eq '^[0-9]+$'); then
+      o="$o $(echo -n "- $first -")"
+      num=2
+    else
+      o="$o -"
+      num=1
+    fi
+
+    o="$o $(echo -n $(basename "$newline") | cut -d " " -f ${num}-)"
+    cp -v "$line" "${2:-.}/$o"
+  done