#!/bin/sh if [ -z "$1" ]; then echo "Usage: $0 [פאיכ.{ape|flac}] {start index}" exit 1 fi if [ ! -f "$1" ]; then echo "No source file '$1'" exit 1 fi cue=`basename "$1" .ape` cue=`basename "$cue" .flac` cue=`basename "$cue" .wv` cue=`basename "$cue" .wav` cue="$cue".cue [ ! -f "$cue" ] && cue="$1.cue" if [ ! -f "$cue" ]; then echo "No cue sheet file '$cue'" exit 1 fi start_index=1 [ -n "$2" ] && start_index=$2 year=`sed "$cue" -ne '/^REM DATE/p' | dos2unix | sed -e 's/.*DATE *//' -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` genre=`sed "$cue" -ne '/^REM GENRE/p' | dos2unix | sed -e 's/.*GENRE *//' -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` album=`sed "$cue" -ne '/^TITLE/p' | dos2unix | sed -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` gartist=`sed "$cue" -ne '/^PERFORMER/p' | dos2unix | sed -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` echo "--- Encoding $year. $album ($genre) ---" dir="$year. $album" [ ! -d "$dir" ] && mkdir "$dir" grep "INDEX 01" "$cue" | sed -e 's/^[ ]*//' | dos2unix >__tmp__.cue shnsplit -f __tmp__.cue -c $start_index -a "" -n "%02d" "$1" rm -f __tmp__.cue [ -n "$year" ] && year="-d \"$year\"" [ -n "$album" ] && album="-l \"$album\"" [ -n "$genre" ] && genre="-G \"$genre\"" for x in *.wav; do [ "$x" == "*.wav" ] && break tno=`basename $x .wav` title=`sed "$cue" -ne "/TRACK $tno/,/TRACK/{" -e '/.*TITLE/p' -e '}' | dos2unix | sed -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` artist=`sed "$cue" -ne "/TRACK $tno/,/TRACK/{" -e '/.*PERFORMER/p' -e '}' | dos2unix | sed -e 's/[^"]* *"//' -e 's/ *" *$//' -e 's/"/\\"/g' -e 's/\\$/$$/g'` [ -z "$artist" ] && artist="$gartist" echo "--> $tno. $title ($artist)" [ -n "$tno" ] && tno="-N \"$tno\"" [ -n "$title" ] && title="-t \"$title\"" [ -n "$artist" ] && artist="-a \"$artist\"" fname="\"$dir/%n. %t.ogg\"" eval oggenc -q8 -c "encoded-by=zap" -n $fname $year $album $genre $tno $title $artist $x && rm -f "$x" done