add usage, improve getopt
Signed-off-by: Bogomil Vasilev <smirky@smirky.net>
This commit is contained in:
@@ -1,32 +1,52 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This script is indended to decrypt, mount and chroot in a LUKS+EFI+LVM USB
|
||||||
|
|
||||||
if [[ $UID != 0 ]]; then
|
if [[ $UID != 0 ]]; then
|
||||||
printf "You need root permissions to use this script!\n"
|
printf "You need root permissions to use this script!\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo -e "\nUsage: $(basename "$0") [options] [luks_device]\n\n" \
|
||||||
|
"Options:\n" \
|
||||||
|
"\t-m, --mount Mount the LUKS device (Default)\n" \
|
||||||
|
"\t-u, --umount Unmount the LUKS device\n" \
|
||||||
|
"\t-n, --nochroot Don't run arch-chroot\n" \
|
||||||
|
"\t-c, --chroot Run arch-chroot (Default)\n" \
|
||||||
|
"\t-h, --help Display this message\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mute lvm utilities
|
||||||
export LVM_SUPPRESS_FD_WARNINGS=true
|
export LVM_SUPPRESS_FD_WARNINGS=true
|
||||||
|
|
||||||
|
# Some sane defaults
|
||||||
ACTION=mount
|
ACTION=mount
|
||||||
RUN_CHROOT=true
|
RUN_CHROOT=true
|
||||||
USB_LUKS_PART=
|
USB_LUKS_PART=
|
||||||
|
|
||||||
# Call getopt to validate the provided input.
|
# Call getopt to validate the provided input.
|
||||||
options=$(getopt -o cmnu -l chroot,nochroot,mount,umount -- "$@")
|
if ! options=$(getopt -o chmnu -l chroot,nochroot,mount,umount,help -- "$@"); then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
eval set -- "$options"
|
eval set -- "$options"
|
||||||
while [ $# -gt 0 ]; do
|
while true; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
(-m|--mount) ACTION=mount ;;
|
(-m|--mount) ACTION=mount ;;
|
||||||
(-u|--umount) ACTION=umount ;;
|
(-u|--umount) ACTION=umount ;;
|
||||||
(-n|--nochroot) RUN_CHROOT=false ;;
|
(-n|--nochroot) RUN_CHROOT=false ;;
|
||||||
(-c|--chroot) RUN_CHROOT=true ;;
|
(-c|--chroot) RUN_CHROOT=true ;;
|
||||||
|
(-h|--help) usage; exit 1;;
|
||||||
(--) shift; break;;
|
(--) shift; break;;
|
||||||
(-*) echo "invalid option: $1" 1>&2; exit 1;;
|
(*) usage; break;;
|
||||||
(*) break;;
|
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
if [ "$#" -gt 1 ]; then
|
if [ "$#" -gt 1 ]; then
|
||||||
echo "Only 1 additional argument possible! Got $#: $*"
|
echo "error: Only 1 device argument possible! Got $#: $*"
|
||||||
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user