Initial revision

This commit is contained in:
Tanaka Akira 1999-10-16 05:13:05 +00:00
parent 10c661c3e8
commit 9a247092cb
2 changed files with 241 additions and 0 deletions

30
Completion/User/_archie Normal file
View 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
View 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 "$@"