From: Penny Leach Date: Fri, 30 Apr 2010 15:56:22 +0000 (+0200) Subject: added martin's tagrename script to rename oggs based on their tags X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=23f8ad952b9d65b24950cac7eb5ff2f8742f4a03;p=scripts.git added martin's tagrename script to rename oggs based on their tags --- diff --git a/bin/tagrename b/bin/tagrename new file mode 100755 index 0000000..7258351 --- /dev/null +++ b/bin/tagrename @@ -0,0 +1,36 @@ +#!/bin/sh +set -eu + +if [ ! -r $HOME/.abcde.conf ]; then + echo "E: ~/.abcde.conf not found." >&2 + exit 1 +fi + +. $HOME/.abcde.conf +FORMAT=${OUTPUTFORMAT##*/} +[ "$1" = -v ] && FORMAT=${VAOUTPUTFORMAT##*/} && shift + +extract_tag() +{ + local file; file="$1" + vorbiscomment -l "$file" | sed -rne "s,^${2}=,,p" +} + +get_filename() +{ + local file; file="$1" + local filename + + TRACKNUM="$(extract_tag "$file" TRACKNUMBER)" + TRACKFILE="$(extract_tag "$file" TITLE)" + ARTISTFILE="$(extract_tag "$file" ARTIST)" + + eval mungefilename "$FORMAT" +} + +for file in "$@"; do + newname="$(get_filename "$file").ogg" + case "$file" in */*) newname="${file%/*}/$newname";; esac + [ "$file" = "$newname" ] || + { echo "I: $file → $newname"; mv "$file" "$newname"; } +done