#!/bin/bash
# Configura as unidades (habilitando/desabilitando)

source /etc/cdcontrolrc

function cdcontrol_config {
 local L_WRITTER L_WRITTER_0 L_TMPFILE L_STATUS L_SAIDA_CFG L_Recorder1 L_Recorder2 L_Recorder3 L_Recorder4 L_Recorder5 L_Recorder6 L_Recorder7 L_Recorder8 L_Recorder9 L_Recorder10 L_Recorder11 L_Recorder12 L_Recorder13 L_Recorder14 L_Recorder15 L_Recorder16 L_Recorder17 L_Recorder18 L_Recorder19 L_Recorder20

# Le o status inicial de cada unidade (habilitada/desabilitada) colocando o valor
# em variveis sequenciais de 1 a 99
for L_WRITTER in `seq 1 ${WRITTERS}`;do
 cat ${CFG_DIR}/Recorder${L_WRITTER}.cfg|grep 'ENABLED=1' >/dev/null
 if [ $? = 0 ];then
  eval L_Recorder${L_WRITTER}="on"
 else
  eval L_Recorder${L_WRITTER}="off"
 fi
done


L_TMPFILE=`mktemp /tmp/fileXXXXXX`

dialog  --backtitle "CDcontrol v${CDC_VERSION}" \
        --title "Enable/Disable Writters" \
        --checklist "From this screen you can enable/disable\n\
CD writters used by CDcontrol.\n\
Press space bar to toggle enable/disabled from that writter,\n\
press <Enter> to confirm. Press <Esc> ou select 'Cancel'\n\
to exit" 18 65 8 \
$(for L_WRITTER in `seq 1 ${WRITTERS}`;do
 L_STATUS=$(echo `eval echo \$\{L_Recorder$(echo ${L_WRITTER})\}`)
 echo "\"Writter_${L_WRITTER}\" \"Writter_${L_WRITTER}_configuration\" `echo ${L_STATUS}`"
done
) 2> ${L_TMPFILE}

case $? in
  1)
   clear
   echo "Canceled by user"
   rm -f ${L_TMPFILE}
   exit 1
   ;;
  255)
   clear
   echo "Canceled by user"
   rm -f ${L_TMPFILE}
   exit 1
   ;;
esac

# Retira as aspas e a palavra "Writter_" da seleo
L_TMPFILE=`cat ${L_TMPFILE}|sed -e s/"\""//g|sed -e s/'Writter_'//g`

# Acrescenta um 0 na frente de nmeros 1 a 9 para no haver erros de 
# comparao adicionando os resultados na varivel L_SAIDA_CFG
L_SAIDA_CFG=""
for L_WRITTER in ${L_TMPFILE};do
 if [ ${L_WRITTER} -lt 10 ];then
  L_SAIDA_CFG=`echo "${L_SAIDA_CFG} 0${L_WRITTER}"`
 else
  L_SAIDA_CFG=`echo "${L_SAIDA_CFG} ${L_WRITTER}"`
 fi
done
rm -f ${L_TMPFILE}


# Confirmao da modificao do status das unidades
dialog --backtitle "CDcontrol v${CDC_VERSION}" --title "Confirmation" \
   --yesno "Do you like to save the configuration? press <Enter>\n\
to save. Press <Esc> or select 'No' to exit:" 7 61
case $? in
 0)
  clear
  # Acrescenta um 0 na frente dos nmeros 1 a 9 para no haver erros de 
  # comparao adicionando os resultados na varivel L_WRITTER_0
  for L_WRITTER in `seq 1 ${WRITTERS}`;do
   if [ ${L_WRITTER} -lt 10 ];then
    L_WRITTER_0=`echo "0${L_WRITTER}"`
    else
    L_WRITTER_0=`echo "${L_WRITTER}"`
   fi
   # Caso a varivel L_SAIDA_CFG conter o nmero, significa que a unidade foi
   # habilitada
   if echo ${L_SAIDA_CFG}|grep "${L_WRITTER_0}" >/dev/null;then
    echo "The writter ${L_WRITTER} was enabled"
    sed -e s/"ENABLED=.*"/'ENABLED=1'/ \
    ${CFG_DIR}/Recorder${L_WRITTER}.cfg >${TMP_DIR}/Recorder${L_WRITTER}-config.temp
   else
    echo "The writter ${L_WRITTER} was disabled"
    sed -e s/"ENABLED=.*"/'ENABLED=0'/ \
    ${CFG_DIR}/Recorder${L_WRITTER}.cfg >${TMP_DIR}/Recorder${L_WRITTER}-config.temp
   fi
   mv -f ${TMP_DIR}/Recorder${L_WRITTER}-config.temp \
         ${CFG_DIR}/Recorder${L_WRITTER}.cfg
  done
  ;;
 1)
  exit 1
  ;;
 255)
  exit 1
  ;;
esac

exit 0
}

cdcontrol_config
