]> git.wh0rd.org - home.git/blame - .bin/backup-dvd
more bin/profiles
[home.git] / .bin / backup-dvd
CommitLineData
4108a92c
MF
1#!/bin/bash
2
3usage() {
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
14dev=/dev/cdrom
15out=${PWD}
16
17eval set -- `getopt -- hi:o: "$@"`
18while [[ -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
27done
28
29# iso-info mkisofs
30Application= # -A
31Preparer= # -p
32Publisher= # -publisher
33System= # -sysid
34Volume= # -V
35Volume_Set= # -volset
36
37info=$(iso-info ${dev}) || exit 1
38
39eval $(echo "${info}" | awk -F: '
40 (NF > 1 && $1 !~ /image/) {
41 sub(/ *$/, "", $1);
42 sub(/ /, "_", $1);
43 sub(/^ */, "", $2);
44 print $1 "=\"" $2 "\"";
45}')
46
47if [[ -z ${Volume} ]] ; then
48 echo "Unable to parse Volume out of ISO"
49 iso-info ${dev}
50fi
51
52echo "Backing up: ${Volume}"
53
54e() {
55 for a ; do
56 [[ ${a} == *" "* || ${#a} == 0 ]] && fmt='"%s"' || fmt='%s'
57 printf "${fmt} " "${a}"
58 done
59 echo
60 "$@"
61}
62e dvdbackup -M -i ${dev} -o "${out}"
63e 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}"
71du -h "${out}/${Volume}.iso"
72
73exec eject