]>
Commit | Line | Data |
---|---|---|
4108a92c MF |
1 | #!/bin/bash |
2 | ||
3 | usage() { | |
4 | cat <<-EOF | |
5 | backup-dvd [options] | |
6 | ||
7 | Options: | |
8 | -i <input dev> Defaults to ${dev} | |
9 | -o <output dir> Defaults to ${out} | |
10 | EOF | |
11 | exit ${1:-0} | |
12 | } | |
13 | ||
14 | dev=/dev/cdrom | |
15 | out=${PWD} | |
16 | ||
17 | eval set -- `getopt -- hi:o: "$@"` | |
18 | while [[ -n $1 ]] ; do | |
19 | case $1 in | |
20 | -h) usage;; | |
21 | -i) dev=$2; shift 2;; | |
22 | -o) out=$2; shift 2;; | |
23 | --) shift; break;; | |
24 | -*) usage 1;; | |
25 | *) usage 2; break;; | |
26 | esac | |
27 | done | |
28 | ||
29 | # iso-info mkisofs | |
30 | Application= # -A | |
31 | Preparer= # -p | |
32 | Publisher= # -publisher | |
33 | System= # -sysid | |
34 | Volume= # -V | |
35 | Volume_Set= # -volset | |
36 | ||
37 | info=$(iso-info ${dev}) || exit 1 | |
38 | ||
39 | eval $(echo "${info}" | awk -F: ' | |
40 | (NF > 1 && $1 !~ /image/) { | |
41 | sub(/ *$/, "", $1); | |
42 | sub(/ /, "_", $1); | |
43 | sub(/^ */, "", $2); | |
44 | print $1 "=\"" $2 "\""; | |
45 | }') | |
46 | ||
47 | if [[ -z ${Volume} ]] ; then | |
48 | echo "Unable to parse Volume out of ISO" | |
49 | iso-info ${dev} | |
50 | fi | |
51 | ||
52 | echo "Backing up: ${Volume}" | |
53 | ||
54 | e() { | |
55 | for a ; do | |
56 | [[ ${a} == *" "* || ${#a} == 0 ]] && fmt='"%s"' || fmt='%s' | |
57 | printf "${fmt} " "${a}" | |
58 | done | |
59 | echo | |
60 | "$@" | |
61 | } | |
62 | e dvdbackup -M -i ${dev} -o "${out}" | |
63 | e mkisofs -quiet -dvd-video \ | |
64 | -A "${Application}" \ | |
65 | -p "${Preparer}" \ | |
66 | -publisher "${Publisher}" \ | |
67 | -sysid "${System}" \ | |
68 | -V "${Volume}" \ | |
69 | -volset "${Volume_Set}" \ | |
70 | -o "${out}/${Volume}.iso" "${Volume}" | |
71 | du -h "${out}/${Volume}.iso" | |
72 | ||
73 | exec eject |