aboutsummaryrefslogtreecommitdiff
path: root/handlers/makecd.in
blob: d44bba33a777e20a888e7a2a5deae285d494b8c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
# vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
#
# 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
getconf nicelevel 0

# define needed executables:
MKISOFS="/usr/bin/genisoimage"
GROWISOFS="/usr/bin/growisofs"
CDRECORD="/usr/bin/wodim"
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="nice -n $nicelevel $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