#!/bin/bash
# Grava uma imagem de CD no disco rgido

source /etc/cdcontrolrc

FREE_SPC=$(echo $[`df -m | grep "${IMG_PARTITION}" | awk '{print $4}'`/655])

#--------[ Verifica o espao livre para a gravao da Imagem ]------------
if [ ${FREE_SPC} = 0 ];then
 dialog  --backtitle "CDcontrol v${CDC_VERSION}" --title "Alert!" --clear \
   --msgbox "You don't have enought free space on your partition to write a new,\n\
CD image, run the program 'apagar-cdcontrol' to erase CD images not used\n\
and then run this program again. Press <Enter>" 0 0 
 exit 1
fi

#-------------------[ Processamento do Dialog ]----------------------------
L_TMPFILE=`mktemp /tmp/fileXXXXXX`

dialog  --backtitle "CDcontrol v${CDC_VERSION}" \
        --title "Type the CD name" --clear \
       --inputbox "Type the CD name in the space bellow and press\n\
<ENTER>. There is space for ${FREE_SPC} CD images\n\
on your disk." \
        10 51 2> ${L_TMPFILE}
retval=$?
CD_NAME=`cat ${L_TMPFILE}|sed -e s/' '/'_'/g`
rm -f ${L_TMPFILE}
case $retval in
  0)
   if [ -z ${CD_NAME} ];then
    echo "Canceled by user."
    exit 1
   fi
    ;;
  1)
    echo "Canceled by user"
    exit 1;;
  255)
    echo "Canceled by user"
    exit 1;;
esac
#----------------------------------------------------------------------------------

if [ ! -d "${IMG_DIR}/${CD_NAME}" -a "${IMG_TYPE}" = "A" ];then 
 mkdir -p "${IMG_DIR}/${CD_NAME}" >/dev/null
fi

if [ "${IMG_TYPE}" = "A" ];then
 if ! cd "${IMG_DIR}/${CD_NAME}" >/dev/null;then
  echo "Could not possible write to disk, chech if the access permissions"
  echo "are ok and try again"
  exit 1
 fi
elif [ "${IMG_TYPE}" = "D" ];then
 cd "${IMG_DIR}"
fi

clear
if [ "${IMG_TYPE}" = "A" ];then
 echo "Reading the audio CD \"${CD_NAME}\". Please wait..."
elif [ "${IMG_TYPE}" = "D" ];then
 echo "Reading the data CD \"${CD_NAME}\". Please wait..."
fi
echo "-----------------------------------------------------------------------------"

if [ "${IMG_TYPE}" = "A" ];then
 cdda2wav -x -v255 -D${CD_READER} -B -S${R_SPEED} -Owav track
elif [ "${IMG_TYPE}" = "D" ];then
 dd if=${CD_READER} of="${CD_NAME}.iso" bs=2048
fi

# Checa se a imagem foi gravada com sucesso, verificando o exitcode do ltimo 
# programa
if [ $? = 0 ];then
 clear
 echo "CD \"${CD_NAME}\" sucesfully written to the memory"
else
 echo "Fail to write \"${CD_NAME}\" to the memory"
 if [ "${IMG_TYPE}" = "A" ];then
  rm -rf "${IMG_DIR}/${CD_NAME}" >/dev/null
 elif [ "${IMG_TYPE}" = "D" ];then
  rm -rf "${IMG_DIR}/${CD_NAME}.iso" >/dev/null
 fi
fi

exit 0
