#!/bin/sh
#
# Autor Thorsten Gunkel <tgunkel@gmx.de>
#

# Empty String?
is_empty()
{
 if [ "X$1" = "X" ]; then
  true;
 else
  false;
 fi;
}

# Not a empty String?
not_empty()
{
  is_empty "$1"
  fehler=$?;
  if [ $fehler -eq 0 ]; then
  false;
 else
  true;
 fi
}

check_2_paramter()
{
  is_empty "$1"
  fehler=$?;
  if [ $fehler -eq 0 ]; then
   echo "Fehler: Der 2. Paramter fehlt."
   exit 1
  fi
}

# get -V
get_name()
{
  read cdname;
  not_empty "$cdname" && echo "-V\"$cdname\"";
}

# MAIN

# Read config file
. /etc/tg-cdburn.conf
is_empty "$cdrecord" && cdrecord="`which cdrecord` -v"
is_empty "$cdrecord" && cdrecord="/usr/bin/cdrecord"
is_empty "$brenner_dev" && brenner_dev="$CDR_DEVICE";
is_empty "$brenner_dev" && { echo "No device specified. check tg-cdburn.conf (5)"; exit 1; }
is_empty "$brenner_speed" && brenner_speed="$CDR_SPEED";
is_empty "$brenner_speed" && brenner_speed="1";
is_empty "$cdrom_dev" && cdrom_dev="/dev/cdrom";

cdrecord="$cdrecord -speed=\"$brenner_speed\" -dev=\"$brenner_dev\""

param1="$1"
param2="$2"


case "$param1" in
    
    blank_fast)
		echo "Schnelllöschung"
        cmd="$cdrecord -blank fast"
    ;;
    blank_all)
        echo "Komplettlöschung"
        cmd="$cdrecord -blank all"
    ;;
    blank_force)
        echo "Erzwungene Komplettlöschung"
        cmd="$cdrecord  -blank all -force"
    ;;
    data)
		check_2_paramter "$param2"
		echo "Folgende(r) Ordner/Datei soll auf CD gebrannt werden: $param2"
		echo "Namen für die CD eingeben. Vorschläge:"
		echo "`date +%Y%m%d`"
		echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"//
		# Berechnet Größe des Images
		tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s
		echo -n "Ihre Wahl: "
		cmd="/usr/bin/mkisofs -l -J -allow-leading-dots -nobak -r `get_name` \"$param2\"  | $cdrecord -pad -dao -tsize=\"$tsize\" -"
    ;;
	dvddata)
		check_2_paramter "$param2"
		echo "Folgende(r) Ordner/Datei soll auf DVD gebrannt werden: $param2"
		echo "Namen für die DVD eingeben. Vorschläge:"
		echo "`date +%Y%m%d`"
		echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"//
		echo -n "Ihre Wahl: "
		cmd="$growisofs -Z \"$brenner_dev\" -l -J -allow-leading-dots -nobak -r `get_name` \"$param2\""
    ;;	
	dvddata_second)
		check_2_paramter "$param2"
		echo "Folgende(r) Ordner/Datei sollen zusätzlich auf DVD gebrannt werden: $param2"
		cmd="$growisofs -M \"$brenner_dev\" -l -J -allow-leading-dots -nobak \"$param2\""
    ;;	
    multi_first)
		check_2_paramter "$param2"
		echo "Folgeder Ordner/Datei soll gebrannt werden: $param2"
		echo "Namen für die CD eingeben. Vorschläge:"
		echo "`date +%Y%m%d`"	
		echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"//
		echo -n "Ihre Wahl: "
		# Berechnet Größe des Images
		tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s
		cmd="/usr/bin/mkisofs -l -J -L -R -nobak -r `get_name` \"$param2\"  | $cdrecord -pad -tsize=\"$tsize\" -multi -"
    ;;
    multi_non_first)
		check_2_paramter "$param2"
		echo "Folgeder Ordner/Datei soll hinzugefuegt werden: $param2"
		# Berechnet Größe des Images
		tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s
		# Berechnet Sektoren fuer Multisession
		msinf=`/usr/bin/sudo /usr/bin/cdrecord -msinfo -dev $brenner_dev`
		cmd="/usr/bin/mkisofs -l -J -L -R -nobak -r -M $brenner_dev -C $msinf \"$param2\"  | $cdrecord -pad -tsize=\"$tsize\" -multi -"
    ;;
    read2img)
        echo "CD/DVD auslesen und in Image speichern"
        cmd="dd if=\"$cdrom_dev\" of=$param2"
    ;;
    image)
		check_2_paramter "$param2"
		echo "Folgendes Image auf CD brennen: $param2"
		cmd="$cdrecord -pad -dao $param2"
    ;;
	dvdimage)
		check_2_paramter "$param2"
		echo "Folgendes Image soll auf DVD gebrannt werden: $param2"
		cmd="$growisofs -dvd-compat -Z \"$brenner_dev=$param2\""
    ;;
    copy)
		echo "Daten CD ~ 1:1 kopieren"
		cmd="$cdrecord -pad -dao -isosize \"$cdrom_dev\""
    ;;
    dvdcopy)
		echo "Daten DVD ~ 1:1 kopieren"
		cmd="$growisofs -dvd-compat -Z \"$brenner_dev=$cdrom_dev\""
    ;;
    audio)
		check_2_paramter "$param2"
		echo "Folgede Dateien werden auf CD gebrannt:"
        file "$param2/"*.wav
        echo RETURN zum bestätigen, CTRL C zum abbrechen
		read nix
		cmd="$cdrecord -pad -audio \"$param2/\"*.wav"
    ;;
    *)
        echo
        echo "Missing Parameter. Try one of these:"
		echo "blank_fast"
		echo "blank_all"
		echo "blank_force"
		echo "data NAME"
		echo "dvddata NAME"
		echo "dvdimage NAME"
		echo "multi_first NAME"
		echo "multi_non_first NAME"
		echo "dvddata_second NAME"
		echo "audio NAME"
		echo "read2img NAME"
		echo "image NAME"
		echo "copy"
		echo "dvdcopy"
		echo 
		echo "ERROR -> Exit"
		exit 1
    ;;
esac

echo "$cmd"
echo
eval "$cmd"

