#!/bin/bash
#
# Copyright 2007 Develer S.r.l. (http://www.develer.com/)
# Copyright 2001 Bernardo Inncenti <bernie@codewiz.org>
# All rights reserved.
#
# $Id: mkcd,v 1.5 2007/03/01 22:16:00 bernie Exp $
#
# Author: Bernardo Innocenti <bernie@develer.com>
#

#EVIL? driveropts=burnfree
#-multi
CDRECORDOPTS="-v gracetime=0"
MKISOFSOPTS="-r -l -J -allow-leading-dots"

if [ ! $# = 1 ] ; then
	me=`basename $0`
	echo "Usage: $me <root_dir|iso_image>"
	exit 1
fi

mmc=`cdrecord $CDRECORDOPTS -atip 2>&1 | sed -n -e 's/Using.*(\(mmc_.*\)).*/\1/p'`
case "$mmc" in
mmc_mdvd)
	MKISOFSOPTS="$MKISOFSOPTS -udf"
	CDRECORDOPTS="$CDRECORDOPTS speed=3 -dao"
;;
mmc_cdr)
	CDRECORDOPTS="$CDRECORDOPTS speed=12 -tao"
;;
*)
	echo "Unknown support type: $mmc"
	exit 1
;;
esac

set -x

SRC=$1
if [ -f "$SRC" ]; then
	cdrecord $CDRECORDOPTS -data "$SRC"
elif [ -d "$SRC" ]; then
	VOLNAME=`echo $SRC | sed -e 's/\///g'`
	MKISOFSOPTS="$MKISOFSOPTS -V $VOLNAME"

	blocks=`mkisofs $MKISOFSOPTS -print-size -quiet "$SRC"` || exit 1
	mb=$((blocks*2048/1024/1024))
	echo >&2 "Blocks: $blocks (size: ${mb}MB)"

	mkisofs $MKISOFSOPTS "$SRC" | cdrecord ${CDRECORDOPTS} -overburn tsize=${blocks}s -data -
else
	echo "Don't know what to do with: $SRC"
	exit 1
fi

eject cdrom
