mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
57 lines
1.6 KiB
Bash
57 lines
1.6 KiB
Bash
# bash completion for nmap -*- shell-script -*-
|
|
|
|
_nmap()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
-iL | -oN | -oX | -oS | -oG | ---excludefile | --resume | --stylesheet)
|
|
_filedir
|
|
return
|
|
;;
|
|
-oA | --datadir)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
-e)
|
|
_available_interfaces -a
|
|
return
|
|
;;
|
|
-b | --dns-servers)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
# strip everything following a :, inclusive
|
|
# strip everything following a =, exclusive
|
|
# expand -X; -Y to -X -Y
|
|
# expand -X/-Y/-Z to -X -Y -Z
|
|
# expand -X/Y/Z to -X -Y -Z
|
|
# expand --foo/bar to --foo --bar
|
|
# strip everything following a non-option name or = char
|
|
# TODO: should expand -T<0-5> to -T0 ... -T5
|
|
COMPREPLY=($(compgen -W "$(
|
|
"$1" --help 2>&1 | command sed \
|
|
-e "s/:.*$//" \
|
|
-e "s/=.*$/=/" \
|
|
-e "s/;[[:space:]]*-/ -/g" \
|
|
-e "s/\/-/ -/g" \
|
|
-e "/^[[:space:]]*-[^-]/s/\/\([^-]\)/ -\1/g" \
|
|
-e "/^[[:space:]]*--/s/\/\([^-]\)/ --\1/g" \
|
|
-e "s/[^[:space:]a-zA-Z0-9=-].*$//"
|
|
)" \
|
|
-- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
_known_hosts_real -- "$cur"
|
|
fi
|
|
} &&
|
|
complete -F _nmap nmap
|
|
|
|
# ex: filetype=sh
|