Blame completions/mdadm

Packit 8462d6
# bash completion for mdadm                                -*- shell-script -*-
Packit 8462d6
Packit 8462d6
_mdadm_raid_level()
Packit 8462d6
{
Packit 8462d6
    local mode
Packit 8462d6
Packit 8462d6
    for (( i=1; i < cword; i++ )); do
Packit 8462d6
        case ${words[i]} in
Packit 8462d6
            -C|--create)
Packit 8462d6
                mode=create
Packit 8462d6
                break
Packit 8462d6
                ;;
Packit 8462d6
            -B|--build)
Packit 8462d6
                mode=build
Packit 8462d6
                break
Packit 8462d6
                ;;
Packit 8462d6
        esac
Packit 8462d6
    done
Packit 8462d6
Packit 8462d6
    case $mode in
Packit 8462d6
        create)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'linear raid0 0 stripe raid1 1 mirror
Packit 8462d6
                raid4 4 raid5 5 raid6 6 raid10 10 multipath mp faulty' \
Packit 8462d6
                -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
        build)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'linear stripe raid0 0 raid1 multipath mp
Packit 8462d6
                faulty' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_mdadm_raid_layout()
Packit 8462d6
{
Packit 8462d6
    local level
Packit 8462d6
    for (( i=1; i < cword; i++ )); do
Packit 8462d6
        if [[ "${words[i]}" == -@(l|-level) ]]; then
Packit 8462d6
            level=${words[i+1]}
Packit 8462d6
            break
Packit 8462d6
        fi
Packit 8462d6
    done
Packit 8462d6
Packit 8462d6
    case $level in
Packit 8462d6
        raid5)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'left-asymmetric left-symmetric
Packit 8462d6
                right-asymmetric right-symmetric la ra ls rs' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
        raid10)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'n o p' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
        faulty)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'write-transient wt read-transient rt
Packit 8462d6
                write-persistent wp read-persistent rp write-all read-fixable
Packit 8462d6
                rf clear flush none' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_mdadm_auto_flag()
Packit 8462d6
{
Packit 8462d6
    COMPREPLY=( $( compgen -W 'no yes md mdp part p' -- "$cur" ) )
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_mdadm_update_flag()
Packit 8462d6
{
Packit 8462d6
    COMPREPLY=( $( compgen -W 'sparc2.2 summaries uuid name homehost resync
Packit 8462d6
        byteorder super-minor' -- "$cur" ) )
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
Packit 8462d6
_mdadm()
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
        -c|--config|-b|--bitmap|--backup-file)
Packit 8462d6
            _filedir
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -l|--level)
Packit 8462d6
            _mdadm_raid_level
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -p|--layout|--parity)
Packit 8462d6
            _mdadm_raid_layout
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -a|--auto)
Packit 8462d6
            _mdadm_auto_flag
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -U|--update)
Packit 8462d6
            _mdadm_update_flag
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
Packit 8462d6
    $split && return
Packit 8462d6
Packit 8462d6
    local options='--help --help-options --version --verbose --quiet --brief
Packit 8462d6
        --force --config= --scan --metadata= --homehost='
Packit 8462d6
Packit 8462d6
    if [[ "$cur" == -* ]]; then
Packit 8462d6
        if [[ $cword -eq 1 ]] ; then
Packit 8462d6
            COMPREPLY=( $( compgen -W "$options --assemble --build --create
Packit 8462d6
                --monitor --grow" -- "$cur" ) )
Packit 8462d6
        else
Packit 8462d6
            case ${words[cword-1]} in
Packit 8462d6
                -A|--assemble)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$options --uuid= --super-minor=
Packit 8462d6
                        --name= --force --run --no-degraded --auto= --bitmap=
Packit 8462d6
                        --backup-file= --update= --auto-update-homehost" \
Packit 8462d6
                            -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                -B|-C|-G|--build|--create|--grow)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$options --raid-devices=
Packit 8462d6
                        --spare-devices= --size= --chunk= --rounding= --level=
Packit 8462d6
                        --layout= --parity= --bitmap= --bitmap-chunk=
Packit 8462d6
                        --write-mostly --write-behind= --assume-clean
Packit 8462d6
                        --backup-file= --name= --run --force --auto=" \
Packit 8462d6
                            -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                -F|--follow|--monitor)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$options --mail --program
Packit 8462d6
                        --alert --syslog --delay --daemonise --pid-file
Packit 8462d6
                        --oneshot --test" -- "$cur" ) )
Packit 8462d6
Packit 8462d6
                    ;;
Packit 8462d6
                /dev/*|--add|--fail|--remove)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$options --add --re-add
Packit 8462d6
                        --remove --fail --set-faulty" -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                *)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$options --query --detail
Packit 8462d6
                        --examine --sparc2.2 --examine-bitmap --run --stop
Packit 8462d6
                        --readonly --readwrite --zero-superblock --test" \
Packit 8462d6
                            -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
            esac
Packit 8462d6
        fi
Packit 8462d6
        [[ $COMPREPLY == *= ]] && compopt -o nospace
Packit 8462d6
    else
Packit 8462d6
        cur=${cur:=/dev/}
Packit 8462d6
        _filedir
Packit 8462d6
    fi
Packit 8462d6
} &&
Packit 8462d6
complete -F _mdadm mdadm
Packit 8462d6
Packit 8462d6
# ex: filetype=sh