mirror of
https://github.com/zsh-users/zsh
synced 2024-09-06 08:25:56 +00:00
Initial revision
This commit is contained in:
parent
10c661c3e8
commit
9a247092cb
30
Completion/User/_archie
Normal file
30
Completion/User/_archie
Normal file
|
@ -0,0 +1,30 @@
|
|||
#compdef archie
|
||||
|
||||
local state line
|
||||
typeset -A opt_args
|
||||
|
||||
_arguments -s \
|
||||
'-D[debug level]' \
|
||||
'-v[print version]' \
|
||||
'-V[verbose mode]' \
|
||||
'-O[specifies offset]:offset:' \
|
||||
'-a[list matches as Alex filenames]' \
|
||||
'-c[case sensitive substring search]' \
|
||||
'-e[exact string match (default)]' \
|
||||
'-r[regular expression search]' \
|
||||
'-s[case insensitive substring search]' \
|
||||
'-l[list one match per line]' \
|
||||
'-t[sort inverted by date]' \
|
||||
'-m[specifies maximum number of hits to return (default 95)]:hits to return:' \
|
||||
'-o[specifies file to store results in]:file to store:' \
|
||||
'-h[specifies server host]:server host:->serverhost' \
|
||||
'-L[list known servers and current default]' \
|
||||
'-N-[specifies query niceness level (0-35765)]:niceness level:' \
|
||||
':string:'
|
||||
|
||||
case "$state" in
|
||||
serverhost)
|
||||
: ${(A)archie_servers:=${(M)$(archie -L):#archie.*}}
|
||||
compadd $archie_servers
|
||||
;;
|
||||
esac
|
211
Completion/User/_whois
Normal file
211
Completion/User/_whois
Normal file
|
@ -0,0 +1,211 @@
|
|||
#compdef whois
|
||||
|
||||
_whois () {
|
||||
setopt localoptions extendedglob
|
||||
_whois_setup
|
||||
$_whois_comp
|
||||
}
|
||||
|
||||
builtin functions _whois_setup >&- ||
|
||||
_whois_setup () {
|
||||
(( $+_whois_defaultserver )) ||
|
||||
_whois_defaultserver='whois.internic.net'
|
||||
|
||||
(( $+_whois_servers )) || {
|
||||
typeset -gUa _whois_servers
|
||||
_whois_servers=(
|
||||
$_whois_defaultserver
|
||||
domain-registry.nl
|
||||
is.nic.pw
|
||||
whois.apnic.net:p
|
||||
whois.arin.net:a
|
||||
whois.aunic.net
|
||||
whois.berkeley.edu
|
||||
whois.cdnnet.ca
|
||||
whois.dns.pt
|
||||
whois.funet.fi
|
||||
whois.gb.com
|
||||
whois.gb.net
|
||||
whois.internic.net
|
||||
whois.jpl.nasa.gov
|
||||
whois.nic-se.se
|
||||
whois.nic.ad.jp
|
||||
whois.nic.af
|
||||
whois.nic.as
|
||||
whois.nic.br
|
||||
whois.nic.bt
|
||||
whois.nic.ch
|
||||
whois.nic.cx
|
||||
whois.nic.fr
|
||||
whois.nic.gov:g
|
||||
whois.nic.hm
|
||||
whois.nic.it
|
||||
whois.nic.li
|
||||
whois.nic.lk
|
||||
whois.nic.mil:d
|
||||
whois.nic.mx
|
||||
whois.nic.nu
|
||||
whois.nic.or.kr
|
||||
whois.nic.sh
|
||||
whois.nic.tj
|
||||
whois.nic.tm
|
||||
whois.nic.uk
|
||||
whois.ripe.net:r
|
||||
whois.ripn.net:R
|
||||
whois.sics.se
|
||||
whois.stanford.edu
|
||||
whois.uk.com
|
||||
www.nic.at
|
||||
$(functions -m '_whois:*' |
|
||||
awk '/^undefined _whois:/ {print substr($2,8,length($2)-7)}
|
||||
/^_whois:/ {print substr($1,8,length($1)-7)}')
|
||||
)
|
||||
}
|
||||
|
||||
(( $+_whois_arguments )) || {
|
||||
local help="$(whois </dev/null 2>&1)"
|
||||
local tmp opt opts
|
||||
|
||||
if [[ $help = *"user[@<whois.server>]"* ]]; then
|
||||
_whois_comp=_whois_fwhois
|
||||
elif [[ $help = *(name\ ...|OBJECT...)* ]]; then
|
||||
_whois_comp=_whois_multi
|
||||
else
|
||||
_whois_comp=_whois_single
|
||||
fi
|
||||
|
||||
_whois_arguments=()
|
||||
|
||||
if [[ $help = *"-p PORT"* ]]; then
|
||||
_whois_arguments=("$_whois_arguments[@]"
|
||||
'-p[port]:port:_whois_ports'
|
||||
)
|
||||
fi
|
||||
|
||||
tmp="${(j::)${(@)${(@M)_whois_servers:#*:?}##*:}}"
|
||||
if [[ $help = (#b)*\[-([$tmp]##)\]* ]]; then
|
||||
tmp=(${(s::)match[1]})
|
||||
else
|
||||
tmp=()
|
||||
fi
|
||||
|
||||
if [[ $help = *"-h host"* ]]; then
|
||||
tmp=($tmp h)
|
||||
fi
|
||||
|
||||
for opt in $tmp; do
|
||||
opts=(-${^tmp:#$opt})
|
||||
if (( $#opts )); then opts="($opts)"; else opts=; fi
|
||||
_whois_arguments=("$_whois_arguments[@]"
|
||||
"${opts}-${opt}[${${${(@M)_whois_servers:#*:$opt}%:?}:-specify host}]${(M)${(M)opt:#h}/h/:host:_whois_hosts}"
|
||||
)
|
||||
done
|
||||
}
|
||||
}
|
||||
|
||||
_whois_single () {
|
||||
local state line expl
|
||||
typeset -A opt_args
|
||||
local tmp host
|
||||
|
||||
_arguments \
|
||||
"$_whois_arguments[@]" \
|
||||
':identifier:->identifier'
|
||||
|
||||
case "$state" in
|
||||
identifier)
|
||||
if [[ -z "$QIPREFIX" ]]; then
|
||||
compadd -QS '' \'
|
||||
return
|
||||
fi
|
||||
compset -q
|
||||
host="${opt_args[-h]:-$_whois_defaultserver}"
|
||||
for tmp in $_whois_servers; do
|
||||
if [[ $tmp = *:? && $+opt_args[-${tmp##*:}] -ne 0 ]]; then
|
||||
host="${tmp%:?}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if builtin functions "_whois:$host" >&-; then
|
||||
"_whois:$host" "$expl[@]"
|
||||
else
|
||||
_message "identifier"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_whois_multi () {
|
||||
local state line expl
|
||||
typeset -A opt_args
|
||||
local tmp host
|
||||
|
||||
_arguments \
|
||||
"$_whois_arguments[@]" \
|
||||
'*::identifier:->identifier'
|
||||
|
||||
case "$state" in
|
||||
identifier)
|
||||
host="${opt_args[-h]:-$_whois_defaultserver}"
|
||||
for tmp in $_whois_servers; do
|
||||
if [[ $tmp = *:? && $+opt_args[-${tmp##*:}] -ne 0 ]]; then
|
||||
host="${tmp%:?}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if builtin functions "_whois:$host" >&-; then
|
||||
"_whois:$host" "$expl[@]"
|
||||
else
|
||||
_message "identifier"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_whois_fwhois () {
|
||||
if compset -P '*@'; then
|
||||
_whois_hosts "$@"
|
||||
else
|
||||
if [[ -z "$QIPREFIX" ]]; then
|
||||
compadd -QS '' \'
|
||||
return
|
||||
fi
|
||||
compset -q
|
||||
host="$_whois_defaultserver"
|
||||
if builtin functions "_whois:$host" >&-; then
|
||||
"_whois:$host" "$@"
|
||||
else
|
||||
_message "identifier"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_whois_hosts () {
|
||||
compadd "$@" \
|
||||
-M 'm:{a-zA-Z}={A-Za-z} r:|.=* r:|=*' \
|
||||
- ${_whois_servers%:?} || _hosts "$@"
|
||||
}
|
||||
|
||||
_whois_ports () {
|
||||
compadd "$@" - whois || _ports "$@"
|
||||
}
|
||||
|
||||
builtin functions _whois:whois.internic.net >&- ||
|
||||
_whois:whois.internic.net () {
|
||||
if (( CURRENT == 1 )); then
|
||||
compadd HELP DOMAIN HOST
|
||||
else
|
||||
_message 'string'
|
||||
fi
|
||||
}
|
||||
|
||||
builtin functions _whois:whois.nic.ad.jp >&- ||
|
||||
_whois:whois.nic.ad.jp () {
|
||||
if (( CURRENT == 1 )); then
|
||||
compadd HELP DOM NET HOST PERSON CONN COM
|
||||
else
|
||||
_message 'string'
|
||||
fi
|
||||
}
|
||||
|
||||
_whois "$@"
|
Loading…
Reference in a new issue