#!/bin/bash
set -e

TITLE="Youtube Videos";
INPUTDIR="./";
OUTPUTDIR="/tmp";


function usage(){
   echo "Usage: $0 -t <DVD TITLE> -i <INPUTDIR WITH .FLV FILES> -o <OUTPUTDIR>"
   exit 1
}

while getopts ':i:o:t:' OPTION ; do
  case $OPTION in
    i)   INPUTDIR=$OPTARG;;
    o)   OUTPUTDIR=$OPTARG;;
    t)   TITLE=$OPTARG;;
    h)   usage $EXIT_SUCCESS;;
    \?)  echo "Unknown option \"-$OPTARG\"." >&2
         usage $EXIT_ERROR;;
    :)   echo "Option \"-$OPTARG\" needs an argument." >&2
         usage $EXIT_ERROR;;
    *)   usage $EXIT_BUG;;
  esac
done

mkdir -p $OUTPUTDIR;

# generate mpegs
pushd $INPUTDIR;
for i in *.flv; do
   echo "working on: $i";
   #echo "tovid -pal -dvd -force -noask -ffmpeg -in \"$i\" -out \"$OUTPUTDIR/$i\"";
   tovid -pal -dvd -force -noask -ffmpeg -in "$i" -out "$OUTPUTDIR/$i" 
done

# create menu
MENUCMD="makemenu "
cd $OUTPUTDIR;
rm -f $OUTPUTDIR/dvdmenu.mpg;
for i in *.mpg; do MENUCMD="${MENUCMD} \"$i\""; done
MENUCMD="${MENUCMD} -menu-title '${TITLE}' -overwrite -noask -out $OUTPUTDIR/dvdmenu";
#echo "MENUCMD: ${MENUCMD}"

# create xml
XMLCMD="makexml -menu $OUTPUTDIR/dvdmenu.mpg";
for i in *.mpg; do XMLCMD="${XMLCMD} \"$i\""; done
XMLCMD="${XMLCMD} -out $OUTPUTDIR/dvdxml";
XMLCMD="${XMLCMD} -overwrite -out $OUTPUTDIR/dvdxml";

eval "${MENUCMD}";
eval "${XMLCMD}";

# create dvd structure
rm -rf $OUTPUTDIR/dvdxml
makedvd "$OUTPUTDIR/dvdxml.xml";

popd