summaryrefslogtreecommitdiff
path: root/contrib/cpio
blob: e8e4a5a5fc59be20ba3cc2c329e3419acc8b19a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# bash completion for cpio

have cpio && {
_cpio_format()
{
    COMPREPLY=( $( compgen -W 'bin odc newc crc tar ustar hpbin hpodc' -- "$cur" ) )
}

_cpio()
{
    local cur prev split=false

    COMPREPLY=()
    cur=`_get_cword`
    prev=${COMP_WORDS[COMP_CWORD-1]}

    _split_longopt && split=true

    # --name value style option
    case $prev in
        -H|--format)
            _cpio_format
            return 0
            ;;
        -E|-F|-I|--file|--pattern-file)
            _filedir
            return 0
            ;;
        -R|--owner)
            _usergroup
            return 0
            ;;
        --rsh-command)
            COMPREPLY=( $( compgen -c -- "$cur" ) )
            return 0
            ;;
    esac

    $split && return 0

    if [ $COMP_CWORD -eq 1 ]; then
        COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through \
                                   -? --help --license --usage --version' -- "$cur" ) )
    else
        case ${COMP_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 -t --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
}

# 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