Blame completions/cryptsetup

Packit 8462d6
# bash completion for cryptsetup                           -*- shell-script -*-
Packit 8462d6
Packit 8462d6
_cryptsetup_name()
Packit 8462d6
{
Packit 8462d6
    COMPREPLY=( $( compgen -X control -W '$( command ls /dev/mapper )' \
Packit 8462d6
        -- "$cur" ) )
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_cryptsetup_device()
Packit 8462d6
{
Packit 8462d6
    cur=${cur:=/dev/}
Packit 8462d6
    _filedir
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_cryptsetup()
Packit 8462d6
{
Packit 8462d6
    local cur prev words cword split
Packit 8462d6
    _init_completion -s || return
Packit 8462d6
Packit 8462d6
    case $prev in
Packit 8462d6
        --key-file|--master-key-file|--header-backup-file|-d)
Packit 8462d6
            _filedir
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
Packit 8462d6
    $split && return
Packit 8462d6
Packit 8462d6
    local arg
Packit 8462d6
    _get_first_arg
Packit 8462d6
    if [[ -z $arg ]]; then
Packit 8462d6
        if [[ "$cur" == -* ]]; then
Packit 8462d6
            COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
Packit 8462d6
            [[ $COMPREPLY == *= ]] && compopt -o nospace
Packit 8462d6
        else
Packit 8462d6
            COMPREPLY=( $( compgen -W 'create remove status resize luksFormat
Packit 8462d6
                luksOpen luksClose luksSuspend luksResume luksAddKey
Packit 8462d6
                luksRemoveKey luksKillSlot luksDelKey luksUUID isLuks
Packit 8462d6
                luksDump luksHeaderBackup luksHeaderRestore' -- "$cur" ) )
Packit 8462d6
        fi
Packit 8462d6
    else
Packit 8462d6
        local args
Packit 8462d6
        _count_args
Packit 8462d6
        case $arg in
Packit 8462d6
            create)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_name
Packit 8462d6
                        ;;
Packit 8462d6
                    3)
Packit 8462d6
                        _cryptsetup_device
Packit 8462d6
                        ;;
Packit 8462d6
                esac
Packit 8462d6
                ;;
Packit 8462d6
            remove|status|resize|luksClose|luksSuspend|luksResume)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_name
Packit 8462d6
                        ;;
Packit 8462d6
                esac
Packit 8462d6
                ;;
Packit 8462d6
            luksFormat|luksAddKey|luksRemoveKey)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_device
Packit 8462d6
                        ;;
Packit 8462d6
                    3)
Packit 8462d6
                        _filedir
Packit 8462d6
                        ;;
Packit 8462d6
                esac
Packit 8462d6
                ;;
Packit 8462d6
            luksOpen)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_device
Packit 8462d6
                        ;;
Packit 8462d6
                    3)
Packit 8462d6
                        _cryptsetup_name
Packit 8462d6
                        ;;
Packit 8462d6
                esac
Packit 8462d6
                ;;
Packit 8462d6
            luksKillSlot|luksDelKey|luksUUID|isLuks|luksDump)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_device
Packit 8462d6
                        ;;
Packit 8462d6
                esac
Packit 8462d6
                ;;
Packit 8462d6
            luksHeaderBackup|luksHeaderRestore)
Packit 8462d6
                case $args in
Packit 8462d6
                    2)
Packit 8462d6
                        _cryptsetup_device
Packit 8462d6
                        ;;
Packit 8462d6
                    3)
Packit 8462d6
                        COMPREPLY=( '--header-backup-file' )
Packit 8462d6
                        ;;
Packit 8462d6
                    esac
Packit 8462d6
                ;;
Packit 8462d6
        esac
Packit 8462d6
    fi
Packit 8462d6
Packit 8462d6
} &&
Packit 8462d6
complete -F _cryptsetup cryptsetup
Packit 8462d6
Packit 8462d6
# ex: filetype=sh