#!/bin/sh
#
# Author:  Carsten Grohmann
#
# Version: 0.1
#
# License: GPL
#
# $Id: mkMultiBootISO,v 1.1 2004/11/23 20:50:43 carsten Exp $
# $Source: /home/cvs/project_carsten/repository/multiboot/bin/mkMultiBootISO,v $
#
# Date:    06. September 2004
#
# Usage:
#  No Parameters needed, because all are hard coded (at present)
#
# CVS History
# $Log: mkMultiBootISO,v $
# Revision 1.1  2004/11/23 20:50:43  carsten
# - Import ins CVS
# - Shell-Skript um ein ISO Abbild einfach zu erzeugen
#

set -x

#
MKISOFS=$(which mkisofs)

# destination image file
ISOFILE="images/bootcd.iso"

# source directory of the iso image
ISODIR="./data"

# enable rock ridge support for U*X
USE_ROCKRIDGE="yes"

# enable joliet support for Win*
USE_JOLIET="yes"

# ISO 9660 settings
#==================

# publisher
ISO_PUBLISHER="Carsten"

# preparer
ISO_PREPARER="mkMULTIBootISO.sh"

# Volume name
ISO_VOLID="MultiBootCD"

# Application ID
ISO_APPID="different_bootable_floppy_disk_images_and_others_stuff"

# invisible files on disk
HIDE_FILES="isolinux.bin boot.catalog"

#
# ==== No changes below this line required ====
#

# check settings
if [ -z "$MKISOFS" ]; then
  echo "ERROR: mkisofs not found."
  exit 1;
fi

# general settings
MKISOFS_OPTS=${MKISOFS_OPTS}" -b isolinux/isolinux.bin"
MKISOFS_OPTS=${MKISOFS_OPTS}" -no-emul-boot"
MKISOFS_OPTS=${MKISOFS_OPTS}" -boot-load-size 4"
MKISOFS_OPTS=${MKISOFS_OPTS}" -boot-info-table"
for i in $HIDE_FILES; do
  MKISOFS_OPTS=${MKISOFS_OPTS}" -hide $i"
done

# rock ridge support settings
if [ "$USE_ROCKRIDGE" = "yes" ]; then
  MKISOFS_OPTS=${MKISOFS_OPTS}" -r"
fi

# joliet support settings
if [ "$USE_JOLIET" = "yes" ]; then
  MKISOFS_OPTS=${MKISOFS_OPTS}" -J"
  for i in $HIDE_FILES; do
    MKISOFS_OPTS=${MKISOFS_OPTS}" -hide-joliet $i"
  done
fi

# fill iso fields
[ "$ISO_PREPARER" ]  && MKISOFS_OPTS=${MKISOFS_OPTS}" -p $ISO_PREPARER"
[ "$ISO_PUBLISHER" ] && MKISOFS_OPTS=${MKISOFS_OPTS}" -P $ISO_PUBLISHER"
[ "$ISO_VOLID" ]     && MKISOFS_OPTS=${MKISOFS_OPTS}" -V $ISO_VOLID"
[ "$ISO_APPID" ]     && MKISOFS_OPTS=${MKISOFS_OPTS}" -A $ISO_APPID"

# add optput file and source directory
MKISOFS_OPTS=${MKISOFS_OPTS}" -o $ISOFILE $ISODIR"

# remove old image
[ -e "$ISOFILE" ] && rm -f $ISOFILES

# create iso image
$MKISOFS $MKISOFS_OPTS
