8fe65e68b4
We can't run most of our tests without the generated tracks. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
48 lines
1.0 KiB
Bash
48 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
function check_cmd()
|
|
{
|
|
echo -n "Checking for $1 ... "
|
|
CMD=$(which $1 2>/dev/null)
|
|
if [ $? != 0 ]; then
|
|
echo "$1 not found"
|
|
exit 1
|
|
fi
|
|
echo $CMD
|
|
}
|
|
check_cmd ffmpeg
|
|
check_cmd vorbiscomment
|
|
|
|
TRACK=1
|
|
FFMPEG="ffmpeg -hide_banner -nostdin -f s16le -i /dev/zero -codec libvorbis -loglevel warning"
|
|
|
|
while read -r line; do
|
|
if [ -z "$ARTIST" ]; then
|
|
ARTIST="$line"
|
|
elif [ -z "$ALBUM" ]; then
|
|
YEAR=$(echo "$line" | cut -f 1 -d ' ')
|
|
ALBUM=$(echo "$line" | cut -f 1 -d ' ' --complement)
|
|
mkdir -p "$ALBUM"
|
|
elif [ -z "$GENRE" ]; then
|
|
GENRE="$line"
|
|
else
|
|
LENGTH=$(echo "$line" | cut -f 1 -d ' ')
|
|
TITLE=$(echo "$line" | cut -f -1 -d ' ' --complement)
|
|
NUMBER=$(printf "%02d" $TRACK)
|
|
FILE="$ALBUM/$NUMBER - $TITLE.ogg"
|
|
|
|
if [ ! -f "$FILE" ]; then
|
|
echo "$FILE"
|
|
$FFMPEG -t "$LENGTH" "$FILE"
|
|
vorbiscomment -w "$FILE" -t "TITLE=$TITLE" \
|
|
-t "ARTIST=$ARTIST" \
|
|
-t "ALBUM=$ALBUM" \
|
|
-t "GENRE=$GENRE" \
|
|
-t "DATE=$YEAR" \
|
|
-t "TRACKNUMBER=$NUMBER"
|
|
fi
|
|
|
|
let TRACK=$TRACK+1
|
|
fi
|
|
done < $1
|