#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
urequire DEFAULTS

function display_help() {
    uecho "$scriptname: créer une image iso d'un répertoire

USAGE
    $scriptname [options] srcdir [dest.iso]

OPTIONS
    -M, --hfs
        créer une image hybride ISO/HFS
    -V, --volume
        Nom du volume. Par défaut, prendre le nom de base du répertoire
        d'origine. La taille est de 32 caractères max.
    -A, --application
        Description de l'application qui est sur l'image créée. Par défaut,
        prendre le nom de base du répertoire d'origine. La taille est de 128
        caractères max."
}

hfsmode=
volume=
application=
parse_opts "${PRETTYOPTS[@]}" \
    --help '$exit_with display_help' \
    -M,--hfs hfsmode=1 \
    -V:,--volume: volume= \
    -A:,--application: application= \
    @ args -- "$@" && set -- "${args[@]}" || die "$args"

srcdir="$(abspath "${1:-.}")"; shift
srcname="$(basename "$srcdir")"
dest="$(abspath "${1:-$srcname.iso}")"; shift

found=
for prog in genisoimage mkisofs; do
    if progexists "$prog"; then
        found=1
        break
    fi
done
[ -n "$found" ] || die "Impossible de trouver genisoimage/mkisofs"

[ -n "$volume" ] || volume="$srcname"
[ -n "$application" ] || application="CD: $srcname"

if ask_yesno "$(ppath "$srcdir")/* --> $(ppath "$dest")" O; then
    "$prog" -V "$volume" -A "$application" -r -hide-rr-moved -J ${hfsmode:+-hfs -part --netatalk} "$@" -o "$dest" "$srcdir"
fi