# bash completion for cryptsetup have cryptsetup || return _cryptsetup_name() { COMPREPLY=( $( compgen -X control -W '$( command ls /dev/mapper )' \ -- "$cur" ) ) } _cryptsetup_device() { cur=${cur:=/dev/} _filedir } _cryptsetup() { local cur prev words cword split _init_completion -s || return case $prev in --key-file|--master-key-file|--header-backup-file|-d) _filedir return 0 ;; esac $split && return local arg _get_first_arg if [ -z $arg ]; then if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace 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 local args _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