#!/bin/sh
#cd-burner wizard
#Barry Kauler (c) copyright 2003,2004,2005
#Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html). 2007 www.puppylinux.com

#updated for v1.0.5
#updated for 2.17
#Translated for Russian by Aleksandr Proklov (Pro) and vkvkvk PuppyRUS.

#make this optional feature...
#this is the on/off scsi-emulate ide switch...
FSCSIEMUL=""
if [ ! -e /etc/scsiemul ];then
 echo -n "off" > /etc/scsiemul
fi
FSCSIEMUL="`cat /etc/scsiemul`" #value is "on" or "off"

if [ "$FSCSIEMUL" = "on" ];then
 xmessage -bg "orange" -center -name "burnwiz" -title "Мастер записи дисков CD/DVD" -buttons "OK:10" "Эмуляция SCSI IDE CD/DVD приводов включена.
Puppy использует модерн ядро Linux которое не тредует эмуляции SCSI.

При нажатии кнопки OK, будет запущен \"старый\" Мастер CD/DVD,
разработанный для ручной эмуляции SCSI CD/DVD приводов.
Старая версия Мастера также имеет кнопку для отключения эмуляции SCSI, 
и возможно это лучшее что вы можете сделать."

 XREPLY=$?
 case $XREPLY in
  10) #scsi
   exec /usr/sbin/cdburner-wizard-old
   ;;
  *)
   exit
   ;;
 esac
fi


#using Antonio Gallo's program...
DRIVESFND="`probedisk 2>&1`"
IDEDRVSFND="`test-eide 2>&1 | grep "cdrom"`"

#SELECTIONS="`echo "$DRIVESFND" | grep -i "cd" | grep -i "rom" | cut -f 1,3 -d "|" | tr " " "_" | tr "|" " " | tr '$' "_"`"
SELECTIONS="`echo "$DRIVESFND" | grep -i "|cdrom|" | cut -f 1,3 -d "|" | tr " " "_" | tr "|" " " | tr '$' "_"`"

#number of physical cdrom/burner drives...
NUMDRIVES=`echo "$DRIVESFND" | grep "cdrom" | wc -l | tr -d " " | tr -d "\n"`
NUMIDEDRVS=`echo "$IDEDRVSFND" | grep "cdrom" | wc -l | tr -d " " | tr -d "\n"`

#one of these should have "RW" or "rw" if a burner...
#( -i means ignore case)
NUMBURNERS=`echo "$DRIVESFND" | grep -i "rw" | wc -l | tr -d " " | tr -d "\n"`

NUMCDROMS=`expr $NUMDRIVES - $NUMBURNERS`

#ok, which one is the burner?...
if [ -f /etc/cdburnerdevice ];then
 BURNERDEV1="/dev/`cat /etc/cdburnerdevice`"
else
 #careful, delimiter for IDEDRVSFND is spaces, not "|"...
 BURNERDEV1="`echo "$IDEDRVSFND" | grep -i "cd" | grep -i "rw" | cut -f 1 -d " " | head -n 1 | tr -d "\n"`"
 #...if there is a burner, this will now have "/dev/hdc" or whatever.
 echo -n "$BURNERDEV1" | cut -f 3 -d '/' > /etc/cdburnerdevice
fi

#which is the cdrom reader?...
#note, /dev/cdrom created by rc.local0 if /etc/cdromdevice exists.
#is there a cdrom drive without "rw" in it?...
#( -v means if not found)
CDROMDRVS="`echo "$DRIVESFND" | grep "cdrom" | grep -vi "rw" | cut -f 1 -d "|"`"
#...if exists, has drive which is not a burner.
if [ "$CDROMDRVS" = "" ];then
 #nothing found. then, use the cd-burner...
 CDROMDEV="$BURNERDEV1"
else
 #precaution if more than one cdrom ro drive...
 CDROMDEV="`echo "$CDROMDRVS" | head -n 1 | tr -d "\n"`"
fi
#what is /dev/cdrom currently linked to?...
[ -e /dev/cdrom ] && CDROMLINK="/dev/`readlink /dev/cdrom | sed -e 's%/dev/%%'`"
[ "$CDROMLINK" ] && CDROMDEV="$CDROMLINK" #override above search

#which one is dvd player...
#note, /dev/dvd created by rc.local0 if /etc/dvddevice exists.
DVDDEV="`echo "$IDEDRVSFND" | grep -i "dvd" | cut -f 1 -d " " | head -n 1 | tr -d "\n"`"
#what is /dev/dvd currently linked to?...
[ -e /dev/dvd ] && DVDLINK="/dev/`readlink /dev/dvd | sed -e 's%/dev/%%'`"
[ "$DVDLINK" ] && DVDEV="$DVDLINK" #overrides the above.

MSG0="Мастер записи дисков CD/DVD"
MSG1="Добро пожаловать в Мастер записи дисков CD/DVD!"
BGCOLOR1="#ffc0c0"
VALIDDRIVES="$SELECTIONS"


while :; do

xmessage -bg "$BGCOLOR1" -center -name "burnwiz" -title "$MSG0" -buttons \
 'Выбрать cdrom':11,'Выбрать dvd':20,'Ус-во записи':10,СПРАВКА:15,ВЫХОД:13 \
 -file -<<FILETXT
$MSG1

Puppy обнаружил следующие CD/DVD устройства:
$VALIDDRIVES

Привод CDROM по умолчанию:  $CDROMDEV
Привод DVD по умолчанию:      $DVDDEV
Устройство записи по умолчанию:     	   		    $BURNERDEV1

Ссылки на устройства:
/dev/cdrom указывает на: 	$CDROMLINK.
/dev/dvd   указывает на:  		$DVDLINK.

Если вы хотите изменить эти параметры, нажмите "Ус-во записи",
"Выбрать cdrom" или "Выбрать dvd" соответственно.
FILETXT

XREPLY=$?

if [ $XREPLY -eq 10 ];then #choose-burner
 BGCOLOR1="#c0e0ff"
  #v1.0.0
  BURNERD0="`Xdialog --wmclass "burnwiz" --title "Мастер записи дисков CD/DVD" --stdout --menubox "Укажите устройство записи:" 0 48 4 $SELECTIONS 2> /dev/null `"
 if [ ! $? -eq 0 ];then
  MSG1="ВЫ НЕ ВЫБРАЛИ УСТРОЙСТВО ЗАПИСИ, ИСПОЛЬЗУЕТСЯ $BURNERDEV1"
 else
  MSG1="ВЫ ВЫБРАЛИ $BURNERD0 В КАЧЕСТВЕ УСТРОЙСТВА ЗАПИСИ"
  BURNERDEV1="$BURNERD0"
  echo -n "$BURNERDEV1" | cut -f 3 -d '/' > /etc/cdburnerdevice
 fi 
fi

if [ $XREPLY -eq 11 ];then #choose cdrom
 BGCOLOR1="#c0e0ff"
  #v1.0.0
  CDROMD0="`Xdialog --wmclass "burnwiz" --title "Мастер записи дисков CD/DVD" --stdout --menubox "Укажите привод CDROM:" 0 48 4 $SELECTIONS 2> /dev/null `"
 if [ ! $? -eq 0 ];then
  MSG1="ВЫ НЕ УКАЗАЛИ ПРИВОД CDROM, ИСПОЛЬЗУЕТСЯ $CDROMDEV"
 else
   MSG1="ВЫ ВЫБРАЛИ $CDROMD0 В КАЧЕСТВЕ ПРИВОДА ЧТЕНИЯ CDROM"
   CDROMDEV="$CDROMD0"
    CDROMLINK="$CDROMDEV"
   #strip off the leading "/dev/"...
   echo -n $CDROMLINK | cut -f 3 -d '/' > /etc/cdromdevice
   rm -f /dev/cdrom
   ln -s $CDROMLINK /dev/cdrom
 fi 
fi

if [ $XREPLY -eq 20 ];then #choose dvd
 BGCOLOR1="#c0e0ff"
 #v1.0.0
 DVDD0="`Xdialog --wmclass "burnwiz" --title "Мастер записи дисков CD/DVD" --stdout --menubox "Укажите привод DVD:" 0 48 4 $SELECTIONS 2> /dev/null `"
 if [ ! $? -eq 0 ];then
  MSG1="ВЫ НЕ УКАЗАЛИ ПРИВОД DVD, ИСПОЛЬЗУЕТСЯ $DVDDEV"
 else
  MSG1="ВЫ ВЫБРАЛИ $DVDD0 В КАЧЕСТВЕ ПРИВОДА ЧТЕНИЯ DVD"
  DVDDEV="$DVDD0"
  DVDLINK="$DVDDEV"
   #strip off the leading "/dev/"...
   echo -n $DVDLINK | cut -f 3 -d '/' > /etc/dvddevice
   rm -f /dev/dvd
   ln -s $DVDLINK /dev/dvd
 fi 
fi



if [ $XREPLY -eq 15 ];then #help
 xmessage -bg "purple" -center -name "burnwiz" -title "Мастер записи дисков CD/DVD: СПРАВКА" "При настройке приводов чтения DVD и CD создаются файлы 
/dev/dvd и /dev/cdrom, являющиеся ссылками на реальные устройства, 
например на /dev/hdc. Они должны указывать на действующие приводы, 
которые Вы хотите использовать для чтения CD или DVD. Так, если 
в компьютере имеются два устройства - привод CD-RW и DVD-R, можно 
назначить, например, привод DVD-R для чтения по умолчанию и CD и DVD 
(т.к. он способен читать диски обоих форматов), а привод CD-RW - 
записывающим по умолчанию диски CD. 

Многие программы могут использовать и CD и DVD. Например, Gxine может 
воспроизводить audio CD-диски и video DVD. Большинство этих программ 
требуют, чтобы ссылки в /dev/cdrom или /dev/dvd указывали на реальное 
устройство, как в случае Grafburn. 

Две распространённые программы для записи компакт-дисков - TkDVD и 
Graveman. Последняя может записывать и CD и DVD-диски, в то время, 
как TkDVD - только DVD. По умолчанию,TkDVD использует файл /dev/dvd 
для поиска реального привода для работы, тогда как Graveman сканирует 
непосредственно аппаратные средства и не зависит от записей в файлах 
/dev/dvd и /dev/cdrom -- вне зависимости от того, какое устройство для 
записи Вы выберите в Мастере, она сама определит его. 

Есть также программы для записи CD/DVD, использующие в своей работе 
Xcdroast, которая доступна в виде пакета PupGet и сама автоматически 
определяет соответствующие приводы. 

Заметим, что такая программа, как Gcombust, написанная ранее для ядра 2.4, 
требует, чтобы записывающий привод работал в режиме эмуляции SCSI. 
Gcombust нет в действующей версии Puppy, но она доступна в виде пакета 
PupGet. \

Если Вы хотите включить для своего записывающего привода режим эмуляции 
SCSI, запустите \"старую\" версию Мастера, выполнив в  Эмуляторе терминала 
urxvt (см. меню \"Утилиты\") команду \"cdburner-wizard-old\". Если Вы не 
знаете, что такое эмуляция SCSI, не  беда, нет большой необходимости знать 
это. Эмуляция SCSI более не требуется для записи CD/DVD-дисков в Puppy и 
заслужила упоминания только своей надёжной работой в прошлом. 

Примечание: Этот Мастер сохраняет параметры в файлах /etc/cdromdevice, 
/etc/dvddevice и /etc/cdburnerdevice."
fi

if [ $XREPLY -eq 13 ];then #exit
 break
fi
if [ $XREPLY -eq 0 ];then #exit
 break
fi
if [ $XREPLY -eq 1 ];then #exit
 break
fi

done
##END##
