summaryrefslogtreecommitdiff
path: root/completions/curl
blob: d744e49a81e0d84efe71cd9a5669d919a68da721 (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
# curl(1) completion                                       -*- shell-script -*-

_curl()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        --ciphers|--connect-timeout|--continue-at|--form|--form-string|\
        --ftp-account|--ftp-alternative-to-user|--ftp-port|--header|--help|\
        --hostpubmd5|--keepalive-time|--krb|--limit-rate|--local-port|\
        --mail-from|--mail-rcpt|--max-filesize|--max-redirs|--max-time|--pass|\
        --proto|--proto-redir|--proxy-user|--proxy1.0|--quote|--range|\
        --request|--retry|--retry-delay|--retry-max-time|\
        --socks5-gssapi-service|--telnet-option|--tftp-blksize|--time-cond|\
        --url|--user|--user-agent|--version|--write-out|--resolve|--tlsuser|\
        --tlspassword|-!(-*)[CFPHhmQrXtzuAVw])
            return
            ;;
        --config|--cookie|--cookie-jar|--dump-header|--egd-file|\
        --key|--libcurl|--output|--random-file|--upload-file|--trace|\
        --trace-ascii|--netrc-file|-!(-*)[KbcDoT])
            _filedir
            return
            ;;
        --cacert|--cert|-!(-*)E)
            _filedir '@(c?(e)rt|cer|pem|der)'
            return
            ;;
        --capath)
            _filedir -d
            return
            ;;
        --cert-type|--key-type)
            COMPREPLY=( $(compgen -W 'DER PEM ENG' -- "$cur") )
            return
            ;;
        --crlfile)
            _filedir crl
            return
            ;;
        --data|--data-ascii|--data-binary|--data-urlencode|-!(-*)d)
            if [[ $cur == \@* ]]; then
                cur=${cur:1}
                _filedir
                if [[ ${#COMPREPLY[@]} -eq 1 && -d "${COMPREPLY[0]}" ]]; then
                    COMPREPLY[0]+=/
                    compopt -o nospace
                fi
                COMPREPLY=( "${COMPREPLY[@]/#/@}" )
            fi
            return
            ;;
        --delegation)
            COMPREPLY=( $(compgen -W 'none policy always' -- "$cur") )
            return
            ;;
        --engine)
            COMPREPLY=( $(compgen -W 'list' -- "$cur") )
            return
            ;;
        --ftp-method)
            COMPREPLY=( $(compgen -W 'multicwd nocwd singlecwd' -- "$cur") )
            return
            ;;
        --ftp-ssl-ccc-mode)
            COMPREPLY=( $(compgen -W 'active passive' -- "$cur") )
            return
            ;;
        --interface)
            _available_interfaces -a
            return
            ;;
        --proxy|--socks4|--socks4a|--socks5|--socks5-hostname|-!(-*)x)
            _known_hosts_real -- "$cur"
            return
            ;;
        --pubkey)
            _xfunc ssh _ssh_identityfile pub
            return
            ;;
        --stderr)
            COMPREPLY=( $(compgen -W '-' -- "$cur") )
            _filedir
            return
            ;;
        --tlsauthtype)
            COMPREPLY=( $(compgen -W 'SRP' -- "$cur") )
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
    fi
} &&
complete -F _curl curl

# ex: filetype=sh