diff options
Diffstat (limited to 'completions/nc')
-rw-r--r-- | completions/nc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/completions/nc b/completions/nc new file mode 100644 index 00000000..055924c9 --- /dev/null +++ b/completions/nc @@ -0,0 +1,48 @@ +# nc(1) completion -*- shell-script -*- + +_nc() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -h|-I|-i|-O|-P|-p|-V|-w) + return + ;; + -s) + _ip_addresses + return + ;; + -T) + COMPREPLY=( $( compgen -W 'critical inetcontrol lowdelay netcontrol + throughput reliability ef af{11..43} cs{0..7}' -- "$cur" ) ) + return + ;; + -X) + COMPREPLY=( $( compgen -W '4 5 connect' -- "$cur" ) ) + return + ;; + -x) + _known_hosts_real "$cur" + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + return + fi + + # Complete 1st non-option arg only + local i + for (( i=1; i < cword; i++ )); do + [[ ${words[i]} != -* && \ + ${words[i-1]} != @(-I|-i|-O|-P|-p|-s|-T|-V|-w|-X|-x) ]] && \ + return + done + + _known_hosts_real "$cur" +} && +complete -F _nc nc + +# ex: ts=4 sw=4 et filetype=sh |