[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 0098435c71f58bf8e28d2a89837f26eebf73d750
guillaume
guillaume at localhost.localdomain
Sun Mar 14 18:27:46 UTC 2010
The following commit has been merged in the master branch:
commit b68a57211990107dd3bcd5ac1e19b66129d1556a
Author: guillaume <guillaume at localhost.localdomain>
Date: Sun Mar 14 19:23:30 2010 +0100
initial import
diff --git a/contrib/cryptsetup b/contrib/cryptsetup
new file mode 100644
index 0000000..e37fcb4
--- /dev/null
+++ b/contrib/cryptsetup
@@ -0,0 +1,114 @@
+# bash completion for cryptsetup
+
+_cryptsetup_name()
+{
+ COMPREPLY=( $( compgen -W '$(command ls /dev/mapper | grep -v control)' \
+ -- "$cur" ) )
+}
+
+_cryptsetup_device()
+{
+ cur=${cur:=/dev/}
+ _filedir
+}
+
+have cryptsetup &&
+_cryptsetup()
+{
+ local cur prev
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=`_get_pword`
+
+ case $prev in
+ --key-file|--master-key-file|--header-backup-file|-d)
+ _filedir
+ return 0;
+ ;;
+ esac
+
+ _get_first_arg
+ if [ -z $arg ]; then
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W '--hash -h --cipher -c\
+ --verify-passphrase -y --key-file -d --master-key-file \
+ --key-slot -S --key-size -s --size -b --offset -o --skip \
+ -p --readonly --iter-time -i --batch-mode -q --timeout -t \
+ --tries -T --align-payload= --version' -- "$cur" ) )
+ else
+ COMPREPLY=( $( compgen -W 'create remove status resize luksFormat \
+ luksOpen luksClose luksSuspend luksResume luksAddKey \
+ luksRemoveKey luksKillSlot luksDelKey luksUUID isLuks \
+ luksDump luksHeaderBackup luksHeaderRestore' -- "$cur" ) )
+ fi
+ else
+ _count_args
+ case $arg in
+ create)
+ case $args in
+ 2)
+ _cryptsetup_name
+ ;;
+ 3)
+ _cryptsetup_device
+ ;;
+ esac
+ ;;
+ remove|status|resize|luksClose|luksSuspend|luksResume)
+ case $args in
+ 2)
+ _cryptsetup_name
+ ;;
+ esac
+ ;;
+ luksFormat|luksAddKey|luksRemoveKey)
+ case $args in
+ 2)
+ _cryptsetup_device
+ ;;
+ 3)
+ _filedir
+ ;;
+ esac
+ ;;
+ luksOpen)
+ case $args in
+ 2)
+ _cryptsetup_device
+ ;;
+ 3)
+ _cryptsetup_name
+ ;;
+ esac
+ ;;
+ luksKillSlot|luksDelKey|luksUUID|isLuks|luksDump)
+ case $args in
+ 2)
+ _cryptsetup_device
+ ;;
+ esac
+ ;;
+ luksHeaderBackup|luksHeaderRestore)
+ case $args in
+ 2)
+ _cryptsetup_device
+ ;;
+ 3)
+ COMPREPLY=( '--header-backup-file' )
+ ;;
+ esac
+ ;;
+ esac
+ fi
+
+ return 0
+} &&
+complete -F _cryptsetup cryptsetup
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
--
bash-completion
More information about the Bash-completion-commits
mailing list