diff --git a/vivohost/create_folder_structure.sh b/vivohost/create_folder_structure.sh new file mode 100644 index 0000000..13ed892 --- /dev/null +++ b/vivohost/create_folder_structure.sh @@ -0,0 +1 @@ +for file in *; do [ -f "$file" ] || continue; dir="${file%.*}"; mkdir -p "$dir"; mv -- "$file" "$dir/"; done diff --git a/vivohost/rename_audiobooks.sh b/vivohost/rename_audiobooks.sh new file mode 100644 index 0000000..01352d6 --- /dev/null +++ b/vivohost/rename_audiobooks.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +find . -type d | while read -r dir; do + name=$(basename "$dir") + + # Match Disc1, Disc01, disc02, CD1, cd01, etc. + if [[ $name =~ (^|[[:space:]._-])([Dd]isc|[Cc][Dd])0*([0-9]+)$ ]]; then + + cdnum="${BASH_REMATCH[3]}" + parent=$(dirname "$dir") + parentname=$(basename "$parent") + + find "$dir" -maxdepth 1 -type f | while read -r file; do + filename=$(basename "$file") + ext="${filename##*.}" + base="${filename%.*}" + + # If there's only one file in the folder, omit the original basename. + if [[ $(find "$dir" -maxdepth 1 -type f | wc -l) -eq 1 ]]; then + newname="CD${cdnum}.${ext}" + else + newname="CD${cdnum}.${base}.${ext}" + fi + echo "$file" "$parent/$newname" + cp "$file" "$parent/$newname" + done + else + echo "$name" + fi +done