#!/bin/sh

set -e

if [ $# -ne 1 ]; then
	echo Usage: `basename "$0"` FILE >&2
	exit 1
fi

ISO_FILE="$1"
IMG_FILE="`echo "$ISO_FILE" | sed "s|\.iso$||"`.img"

if ! [ -e $ISO_FILE ]; then
	echo `basename "$0"`: $ISO_FILE: No such file or directory >&2
	exit 1
fi

if [ -e $IMG_FILE ]; then
	echo `basename "$0"`: $IMG_FILE: File exists >&2
	exit 1
fi

if ! sudo true; then
	echo "You must have root access." >&2
	exit 1
fi

echo Converting $ISO_FILE TO $IMG_FILE...

ISO_DIR=""
IMG_DIR=""

trap 'sudo umount "$ISO_DIR" 2>/dev/null ; umount "$IMG_DIR" 2>/dev/null ; [ "x$ISO_DIR" = "x" ] || rmdir "$ISO_DIR" ; [ "x$IMG_DIR" = "x" ] || rmdir "$IMG_DIR" ; rm -f "$IMG_FILE"' TERM INT

sudo mkfs.msdos -C "$IMG_FILE" 1440

ISO_DIR="`mktemp -d`"
IMG_DIR="`mktemp -d`"

sudo mount -o loop $ISO_FILE $ISO_DIR
sudo mount -o loop $IMG_FILE $IMG_DIR

sudo cp -r $ISO_DIR/* $IMG_DIR/

sudo umount $ISO_DIR
sudo umount $IMG_DIR

sudo chown --reference="$ISO_FILE" "$IMG_FILE"
sudo chmod --reference="$ISO_FILE" "$IMG_FILE"
