#!/bin/bash

#set -ex
set -e

DEVICE=$1
COMPANY=$2
ID=$3
TAG=$(echo $COMPANY$ID | tr 'a-z' 'A-Z')
OLD_TITLE=$PROMPT_COMMAND
PUBDIR=/data/new

WAVDIR=wav
MP3DIR=mp3
SUMDIR=summary

TMPDIR=/data/tmp

DISCID=disc-id
MD5SUM=md5sum
SUMMARY=cdparanoia.log

LOCKFILE=/tmp/${DEVICE//\//_}.lock

if [ $# -lt 3 ]; then
	echo "Usage: $0 <device> <bolag> <cd id>"
	exit 1
fi

if [ -r $LOCKFILE ]; then
	echo -e "Lock \e[31;1mpressent\e[0m, waiting for release"
	while true; do 
		# recheck after 5 sec.
		sleep 5; 

		if [ ! -r $LOCKFILE ]; then
			break;
		fi
	done
	echo -e "Lock released, I will now continue\n\n"
fi

# create lock..
touch $LOCKFILE

CURRENT_DISC_ID=$(cd-discid $DEVICE)
NUMBER_OF_TRACKS=$(cd-info --no-device-info --no-header -C $DEVICE | tail -n 1 | egrep -o '[0-9]+')

# title
echo -n "]2;Ripping $ID of $COMPANY ($NUMBER_OF_TRACKS tracks total). Started at $(date -R)"

echo -e "
Using device \e[33;5m$DEVICE\e[0m.
Currently processing \e[32;1m$ID\e[0m of \e[31;1m$COMPANY\e[0m
with disc ID: $CURRENT_DISC_ID

\e[1mTargets\e[0m:
Wave    \e[36;5m$PUBDIR/$WAVDIR/\e[0m
Mp3     \e[35;5m$PUBDIR/$MP3DIR/\e[0m
Summary \e[37;5m$PUBDIR/$SUMDIR/$TAG.log\e[0m


"
# spektrum:
# for j in $(seq 0 9); do 
#	for i in $(seq 10 50); do 
#		color=$(echo "$i;$j#" | tr '#' 'm'); 
#		echo -e "\e[$color$color\e[0m"; 
#	done; 
# done

if [[ -d $TMPDIR/$WAVDIR/$TAG ]] || [[ -d $PUBDIR/$WAVDIR/$TAG ]]; then
	echo -n "Directory alread exist, rerip it? [y/N]  "
	read RERIP
	case "$RERIP" in
		Y|y)
			;;
		*)
			# reset lock on cd
			rm $LOCKFILE
			exit 2
			;;
	esac
fi

mkdir -p $TMPDIR/{$WAVDIR,$MP3DIR}/$TAG/
cd $TMPDIR/$WAVDIR/$TAG

echo $CURRENT_DISC_ID > $DISCID

cdparanoia -B --force-cdrom-device $DEVICE --log-summary $SUMMARY

eject -v $DEVICE

# reset lock
rm $LOCKFILE

echo -e "\n\e[33;1mPut new cd in tray\e[0m\n\n"

# clean out Rikard's mess
if [ -r track00.cdda.wav ]; then 
	rm track00.cdda.wav
fi

# convert to mp3
for f in *.wav; do 
	echo -e "Running lame on \e[33;1m${f//.cdda.wav/}\e[0m";
	lame -h -b 192 -c $f $TMPDIR/$MP3DIR/$TAG/${f//.cdda.wav/}.mp3 1>&2
	mv $f ${f//.cdda/}
	echo
done

echo -n "Create md5sum..."
md5sum * > $MD5SUM
echo -e " \e[32;1mdone\e[0m"

cp $SUMMARY $PUBDIR/$SUMDIR/$TAG.log

cd

for dir in $WAVDIR $MP3DIR; do 
	echo -e -n "Moving \e[37;9m$dir/$TAG\e[0m.."
	mv $TMPDIR/$dir/$TAG $PUBDIR/$dir/
	echo -e " \e[32;1mdone\e[0m"
done

# reset title
echo -n "]2;$OLD_TITLE"

