home *** CD-ROM | disk | FTP | other *** search
- # bash completion for cryptsetup
-
- _cryptsetup_name()
- {
- COMPREPLY=( $( compgen -X control -W '$( command ls /dev/mapper )' \
- -- "$cur" ) )
- }
-
- _cryptsetup_device()
- {
- cur=${cur:=/dev/}
- _filedir
- }
-
- have cryptsetup &&
- _cryptsetup()
- {
- local cur prev arg
- 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 --cipher --verify-passphrase \
- --key-file --master-key-file --key-slot --key-size --size \
- --offset --skip --readonly --iter-time --batch-mode --timeout \
- --tries --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
-