77 lines
2.0 KiB
Bash
Executable File
77 lines
2.0 KiB
Bash
Executable File
#!/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: Monter une image ISO
|
|
|
|
USAGE
|
|
$scriptname image.iso [mountpoint]
|
|
|
|
Par défaut, l'image iso est montée sur un répertoire avec le même nom de base.
|
|
Si l'image est déjà montée, elle est démontée. Les options -m et -u permettent
|
|
de modifier le comportement par défaut.
|
|
|
|
OPTIONS
|
|
-m
|
|
Forcer le montage
|
|
-u
|
|
Forcer le démontage"
|
|
}
|
|
|
|
action=auto
|
|
parse_opts "${PRETTYOPTS[@]}" \
|
|
--help '$exit_with display_help' \
|
|
-m action=mount \
|
|
-u action=umount \
|
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
|
|
|
image="$1"
|
|
[ -n "$image" ] || die "Vous devez spécifier l'image iso à monter"
|
|
[ -d "$image" -a -f "$image.iso" ] && image="$image.iso"
|
|
[ -f "$image" ] || die "$image: fichier introuvable"
|
|
image="$(abspath "$image")"
|
|
|
|
mountpoint="$2"
|
|
if [ -z "$mountpoint" ]; then
|
|
imagedir="$(dirname "$image")"
|
|
origname="$(basename "$image")"
|
|
basename="${origname%.*}"
|
|
if [ "$basename" == "$origname" ]; then
|
|
# fichier sans extension
|
|
i=
|
|
while [ -d "$imagedir/$basename.mp$i" ]; do
|
|
[ -n "$i" ] || i=0
|
|
i=$(($i + 1))
|
|
done
|
|
mountpoint="$imagedir/$basename.mp$i"
|
|
else
|
|
mountpoint="$imagedir/$basename"
|
|
fi
|
|
fi
|
|
mountpoint="$(abspath "$mountpoint")"
|
|
mkdir -p "$mountpoint" || die
|
|
|
|
is_root && sudo= || sudo=sudo
|
|
if [ "$action" == "auto" ]; then
|
|
if mount | grep -q "$mountpoint"; then
|
|
action=umount
|
|
else
|
|
action=mount
|
|
fi
|
|
fi
|
|
|
|
if [ "$action" == "umount" ]; then
|
|
if $sudo umount "$mountpoint"; then
|
|
echo "Volume démonté avec succès"
|
|
rmdir "$mountpoint" 2>/dev/null
|
|
exit 0
|
|
fi
|
|
elif [ "$action" == "mount" ]; then
|
|
if $sudo mount -o loop "$image" "$mountpoint"; then
|
|
echo "Volume monté avec succès sur $(ppath "$mountpoint")"
|
|
exit 0
|
|
fi
|
|
fi
|