diff options
Diffstat (limited to 'handlers/makecd')
-rw-r--r-- | handlers/makecd | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/handlers/makecd b/handlers/makecd new file mode 100644 index 0000000..81c957d --- /dev/null +++ b/handlers/makecd @@ -0,0 +1,86 @@ +# +# burncd handler script for backupninja +# +getconf backupdir /var/backups/makecd +getconf exclude +getconf target +getconf burnertype cd +getconf system no +getconf isoonly yes +getconf imagefile backup.iso +getconf device + +# define needed executables: +MKISOFS="/usr/bin/mkisofs" +GROWISOFS="/usr/bin/growisofs" +#CDRECORD="/usr/bin/cdrecord" +CDRECORD="/usr/bin/cdrecord.mmap" +CDRDAO="/usr/bin/cdrdao" +DVDINFO="/usr/bin/dvd+rw-mediainfo" + +# create backup dirs and check existence of progs. + +[ -d $backupdir ] || mkdir -p $backupdir +[ -d $backupdir ] || fatal "Backup directory '$backupdir'" +[ -e "$target" ] || fatal "target does not exist " + +[ -x "$MKISOFS" ] || debug 3 "echo executable mkisofs not present" +[ -x "$GROWISOFS" ] || debug 3 "echo executable growisofs not present" +[ -x "$CDRECORD" ] || debug 3 "echo executable cdrecord not present" +[ -x "$CDRDAO" ] || debug 3 "echo executable cdrdao not present" + +if [ "$isoonly" == "no" ]; then + [ -e $device ] || fatal "No Burner device available" +fi + +outputfile="$backupdir/$imagefile" +execstr="$MKISOFS --quiet -R -o $outputfile " + +str="" +# excludes +for i in $exclude; do + str=" -x ${i}$str" +done + +debug 0 "echo $str " +execstr="${execstr} $str $target " +debug 0 "echo $execstr " + +output=` $execstr 2>&1 ` +code=$? +if [ "$code" == "0" ]; then + debug $output + info "Successfully finished creation of iso" +else + warning $output + warning "Failed to create iso" +fi + +if [ "$isoonly" == "no" ]; then + + if [ "$burnertype" == "cd" ]; then + # burning iso to CD + $CDRECORD -v gracetime=2 dev=$device speed=8 -dao -data $outputfile + code=$? + if [ "$code" == "0" ]; then + debug $output + info "Successfully burned CD" + else + warning $output + warning "Failed to create CD" + fi + fi + if [ "$burnertype" == "dvd" ]; then + # burning iso dvd + $GROWISOFS -speed=2 -Z $device=$outputfile -use-the-force-luke=notray -use-the-force-luke=tty + code=$? + if [ "$code" == "0" ]; then + debug $output + info "Successfully burned DVD" + else + warning $output + warning "Failed to create DVD" + fi + fi +fi +return 0 |