#!/bin/sh
MEDIAFILE=`find . -iname '*.mp3' -o -iname '*.ogg' -o -iname '*.flac' | head -n 1`
EXTENSION=`echo "$MEDIAFILE" | tr '.' '\n' | tail -n 1`

if [ -z "$MEDIAFILE" ]; then
	echo "No ogg, flac, or mp3 found"
	exit 1
fi

if [ "$EXTENSION" = "mp3" ]; then
	ALBUM=`id3info "$MEDIAFILE" | grep '^=== TALB' | cut -d' ' -f5-`
	TITLE=`id3info "$MEDIAFILE" | grep '^=== TIT2' | cut -d' ' -f5-`
	ARTIST=`id3info "$MEDIAFILE" | grep '^=== TPE1' | cut -d' ' -f5-`
else
	if [ "$EXTENSION" = "ogg" ]; then
		ALBUM=`vorbiscomment -l "$MEDIAFILE" | grep -i '^ALBUM=' | cut -d= -f2-`
		TITLE=`vorbiscomment -l "$MEDIAFILE" | grep -i '^TITLE=' | cut -d= -f2-`
		ARTIST=`vorbiscomment -l "$MEDIAFILE" | grep -i '^ARTIST=' | cut -d= -f2-`
	else
		if [ "$EXTENSION" = "flac" ]; then
			ALBUM=`metaflac --list --block-type=VORBIS_COMMENT "$MEDIAFILE" | tail +7 | sed -r 's,^    comment\[[0-9]+\]: ,,' | grep -i '^ALBUM=' | cut -d= -f2-`
			TITLE=`metaflac --list --block-type=VORBIS_COMMENT "$MEDIAFILE" | tail +7 | sed -r 's,^    comment\[[0-9]+\]: ,,' | grep -i '^TITLE' | cut -d= -f2-`
			ARTIST=`metaflac --list --block-type=VORBIS_COMMENT "$MEDIAFILE" | tail +7 | sed -r 's,^    comment\[[0-9]+\]: ,,' | grep -i '^ARTIST=' | cut -d= -f2-`
		else
			echo "Don't know what to do with '$EXTENSION'"
			exit 1
		fi
	fi
fi

echo "Found album: [1m$ALBUM[0m (by [1m$ARTIST[0m)"
echo "Used info from '[1m$TITLE[0m' ($MEDIAFILE)"

ALBUM_ESC=`echo "$ALBUM" | tr ' -' '__'`
ARTIST_ESC=`echo "$ARTIST" | tr ' -' '__'`

if [ "$1" = "" ]; then
	echo "No image filename given, stopping"
	exit 0
fi

IMAGEEXT=`echo "$1" | tr '.' '\n' | tail -n 1`

echo "Moving '$1' -> '00-$ARTIST_ESC-$ALBUM_ESC-Front_Cover.$IMAGEEXT"
mv "$1" "00-$ARTIST_ESC-$ALBUM_ESC-Front_Cover.$IMAGEEXT"
