Shell Scripts February 24, 2008 0

Burn CD script – Nagrywanie płyt CD

  • Skrypt do nagrywania płyt CD

Burn CD’s script

#!/bin/sh

#ustawienia zmiennych
Palnica="/dev/hdc"
Obraz="/tmp/target.iso"
tmp_backup="/tmp/*.tgz"

pomoc ()
{
echo "[uzycie:] nagraj.sh [opcja] [katalogi]"
echo ""
echo "opcje:"
echo " -h wyswietla ta pomoc"
echo " -s nagrywa w single-session"
echo " -m zaczyna multisesje"
echo " -c kontynuuje multisesje z zamykaniem sesji "
echo " -o kontynuuje multisesje bez zamykania sesji"
echo " -e czysci plyte"
echo ""
exit 1
}

iso_normal ()
{
mkisofs -v -o ${Obraz} -J -r $@
}
iso_multi ()
{
mkisofs -v -o ${Obraz} -J -r -C `cdrecord -msinfo dev=${Palnica}` -M ${Palnica} $@
}
cdr_normal ()
{
cdrecord -v speed=10 dev=${Palnica} ${Obraz}
}
cdr_multi ()
{
cdrecord -v -multi speed=10 dev=${Palnica} ${Obraz}
}
start_multi ()
{
iso_normal $@ && cdr_multi
rm -f ${Obraz}
rm -f ${tmp_backup}
}
continue_multi ()
{
iso_multi $@ && cdr_normal
rm -f ${Obraz}

}
continue_multi_open ()
{
iso_multi $@ && cdr_multi
rm -f ${Obraz}
rm -f ${tmp_backup}
}
single ()
{
iso_normal $@ && cdr_normal
rm -f ${Obraz}
#rm -f ${tmp_backup}
}
erase ()
{
cdrecord -v blank=fast dev=${Palnica}
}
while getopts "mcoseh" Opcja
do
case $Opcja in
m) shift $((OPTIND - 1)); start_multi $@; exit $? ;;
c) shift $((OPTIND - 1)); continue_multi $@; exit $? ;;
o) shift $((OPTIND - 1)); continue_multi_open $@; exit $? ;;
s) shift $((OPTIND - 1)); single $@; exit $? ;;
e) erase; exit $? ;;
h) pomoc ;;
*) pomoc ;;
esac
done
pomoc