mirror of https://github.com/tLDP/LDP
51 lines
1.5 KiB
Bash
51 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# ex40.sh (burn-cd.sh)
|
|
# Script to automate burning a CDR.
|
|
|
|
|
|
SPEED=10 # May use higher speed if your hardware supports it.
|
|
IMAGEFILE=cdimage.iso
|
|
CONTENTSFILE=contents
|
|
# DEVICE=/dev/cdrom For older versions of cdrecord
|
|
DEVICE="1,0,0"
|
|
DEFAULTDIR=/opt # This is the directory containing the data to be burned.
|
|
# Make sure it exists.
|
|
# Exercise: Add a test for this.
|
|
|
|
# Uses Joerg Schilling's "cdrecord" package:
|
|
# http://www.fokus.fhg.de/usr/schilling/cdrecord.html
|
|
|
|
# If this script invoked as an ordinary user, may need to suid cdrecord
|
|
#+ chmod u+s /usr/bin/cdrecord, as root.
|
|
# Of course, this creates a security hole, though a relatively minor one.
|
|
|
|
if [ -z "$1" ]
|
|
then
|
|
IMAGE_DIRECTORY=$DEFAULTDIR
|
|
# Default directory, if not specified on command-line.
|
|
else
|
|
IMAGE_DIRECTORY=$1
|
|
fi
|
|
|
|
# Create a "table of contents" file.
|
|
ls -lRF $IMAGE_DIRECTORY > $IMAGE_DIRECTORY/$CONTENTSFILE
|
|
# The "l" option gives a "long" file listing.
|
|
# The "R" option makes the listing recursive.
|
|
# The "F" option marks the file types (directories get a trailing /).
|
|
echo "Creating table of contents."
|
|
|
|
# Create an image file preparatory to burning it onto the CDR.
|
|
mkisofs -r -o $IMAGEFILE $IMAGE_DIRECTORY
|
|
echo "Creating ISO9660 file system image ($IMAGEFILE)."
|
|
|
|
# Burn the CDR.
|
|
echo "Burning the disk."
|
|
echo "Please be patient, this will take a while."
|
|
wodim -v -isosize dev=$DEVICE $IMAGEFILE
|
|
# In newer Linux distros, the "wodim" utility assumes the
|
|
#+ functionality of "cdrecord."
|
|
exitcode=$?
|
|
echo "Exit code = $exitcode"
|
|
|
|
exit $exitcode
|