codekasten/spielspass/dmcrypt-wrapper.sh
2005-06-13 18:53:26 +00:00

59 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
#
# a simple wrapper around cryptdisks to:
# mount after cryptsetup
# umount before cryptsetup
# break on error or undefined variables
set -eu
crypt_mount()
{
local partitions=`dmsetup ls | grep -v "No devices found" | cut -f1`
for i in $partitions; do
if mount | grep -q "^/dev/mapper/$i$"
then true
else echo -e "\t$i (mounting)"
mount "/dev/mapper/$i" &>/dev/null || echo -e " (\"mount /dev/mapper/$i\" failed)" >&2
fi
done
}
crypt_umount()
{
local partitions=`dmsetup ls | grep -v "No devices found" | cut -f1`
for i in $partitions; do
if mount | grep -q "^/dev/mapper/$i$"
then echo -e "\t$i (unmounting)"
umount "/dev/mapper/$i" &>/dev/null || echo -e " (\"umount /dev/mapper/$i\" failed)" >&2
fi
done
}
########### do it! ##############
ACTION=help
[ $# -gt 0 ] && ACTION="$1"
case "$ACTION" in
start|retry )
/etc/init.d/cryptdisks start
crypt_mount
;;
stop )
crypt_umount
/etc/init.d/cryptdisks stop
;;
restart|reload|force-reload )
$0 stop
$0 start
;;
* )
echo "Syntax: `basename $0` { start | stop | restart | retry | reload | force-reload | help }"
;;
esac