#!/bin/bash

version="0.1"

orig_dir=${1:-$(pwd)}
dest_dir=${2:-$(pwd)}

function rip {
    for file in $(ls "$orig_dir/" | grep .wav$) ; do

        if [ -f "$orig_dir/${file%.wav}.inf" ]; then
            cat "$orig_dir/${file%.wav}.inf";
        fi

        read -p "Artist for $file ? [$prevartist] " artist
        read -p "Album for $file ? [$prevalbum] " album
        read -p "Genre for $file ? [$prevgenre] " genre
        read -p "Track number for $file [$numbera] " number
        read -p "Title for $file ? [$prevtitle] " title

        for dir in "$dest_dir" \
	           "$dest_dir/${genre:=$prevgenre}" \
		   "$dest_dir/$genre/${artist:=$prevartist}" \
		   "$dest_dir/$genre/$artist/${album:=$prevalbum}"
	do
		   if [ ! -d "$dir" ]; then
		       mkdir "$dir";
		   fi
	done
#	if [ ! -d "$dest_dir" ]; then
#	    mkdir "$dest_dir";
#	fi
#	if [ ! -d "$dest_dir/${genre:=$prevgenre}" ]; then
#            mkdir "$dest_dir/$genre";
#        fi
#        if [ ! -d "$dest_dir/$genre/${artist:=$prevartist}" ]; then
#            mkdir "$dest_dir/$genre/$artist";
#        fi
#        if [ ! -d "$dest_dir/$genre/$artist/${album:=$prevalbum}" ]; then
#            mkdir "$dest_dir/$genre/$artist/$album";
#        fi

        number=${number:-$numbera}
        oggenc -q $quality -G "$genre" -a "$artist" -l "$album" -N "${number#0}" -t "${title:=$prevtitle}" -o "$dest_dir/$genre/$artist/$album/$artist--$number-$title.ogg" "$orig_dir/$file"

        if [ $tar = 1 ]; then
            echo -e "\nAdding file to ${tar_name%%.tar}.tar\n"
            tar rf "$dest_dir/$genre/${tar_name%%.tar}.tar" "$dest_dir/$genre/$artist/$album/$artist--$number-$title.ogg";
        fi

        prevartist=$artist
        prevalbum=$album
        prevgenre=$genre
        length=${#number}
        numbera=$(( ${number#0} + 1 ))
        until [ "${#numbera}" = "$length" ]; do
            numbera="0$numbera"
        done
        prevtitle=$title
    done
}

read -p "In which quality do you want to encode ? (value between 0 - low - and 10 - high.
Values may be of this type : 3.5 or 2.73) " quality

echo

read -p "Do you wish to create a tar archive of the resulting files ? "
case $REPLY in
    y)
      tar=1
      read -p "This archive will be created in $dest_dir/<GENRE>. How do you wish to name it ? " tar_name ;;
    *)
      tar=0
      ;;
esac


echo We are about to encode every wave in $orig_dir to $dest_dir
echo -n "Encoding in 10 seconds. if the above is not what you expected, hit Ctrl-C"

timeout=10
length=${#timeout}
while sleep 1 && [ $timeout != 0 ]; do
    timeout=$(( $timeout - 1 ))
    until [ "${#timeout}" = "$length" ]; do
        timeout=" $timeout"
    done
    echo -ne "\rEncoding in $timeout"
done

echo -e "\n"

rip
