# bash completion for cpio                                 -*- shell-script -*-

_cpio()
{
    local cur prev words cword split
    _init_completion -s -n : || return

    # --name value style option
    case $prev in
        -H|--format)
            COMPREPLY=( $( compgen -W \
                'bin odc newc crc tar ustar hpbin hpodc' -- "$cur" ) )
            return 0
            ;;
        -E|-F|-I|--file|--pattern-file)
            _filedir
            return 0
            ;;
        -R|--owner)
            _usergroup
            return 0
            ;;
        --rsh-command)
            compopt -o filenames
            COMPREPLY=( $( compgen -c -- "$cur" ) )
            return 0
            ;;
    esac

    $split && return 0

    if [[ $cword -eq 1 ]]; then
        COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through
            -? --help --license --usage --version' -- "$cur" ) )
    else
        case ${words[1]} in
            -o|--create)
                if [[ "$cur" == -* ]]; then
                    COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B -L -V -C -H -M
                        -O -F --file --format --message --null
                        --reset-access-time --verbose --dot --append
                        --block-size --dereference --io-size --quiet
                        --force-local --rsh-command --help --version' \
                            -- "$cur" ) )
                fi
                ;;
            -i|--extract)
                if [[ "$cur" == -* ]]; then
                    COMPREPLY=( $( compgen -W '-b -c -d -f -m -n -r -t -s -u -v
                        -B -S -V -C -E -H -M -R -I -F --file --make-directories
                        --nonmatching --preserve-modification-time
                        --numeric-uid-gid --rename --list --swap-bytes --swap
                        --dot --unconditional --verbose --block-size
                        --swap-halfwords --io-size --pattern-file --format
                        --owner --no-preserve-owner --message --force-local
                        --no-absolute-filenames --sparse --only-verify-crc
                        --quiet --rsh-command --help --to-stdout --version' \
                            -- "$cur" ) )
                fi
                ;;
            -p*|--pass-through)
                if [[ "$cur" == -* ]]; then
                    COMPREPLY=( $( compgen -W '-0 -a -d -l -m -u -v -L -V -R
                        --null --reset-access-time --make-directories --link
                        --quiet --preserve-modification-time --unconditional
                        --verbose --dot --dereference --owner
                        --no-preserve-owner --sparse --help --version' \
                            -- "$cur" ) )
                else
                    _filedir -d
                fi
                ;;
        esac
    fi
} &&
complete -F _cpio cpio

# ex: ts=4 sw=4 et filetype=sh
