mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
78 lines
1.9 KiB
Bash
78 lines
1.9 KiB
Bash
# bash completion for getent -*- shell-script -*-
|
|
|
|
_getent()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
local i db
|
|
for ((i = 1; i < cword; i++)); do
|
|
case ${words[i]} in
|
|
--version | --usage | --help | -!(-*)[V?])
|
|
return
|
|
;;
|
|
--service | -!(-*)s)
|
|
((i++))
|
|
;;
|
|
-*) ;;
|
|
|
|
*)
|
|
# First non-option value is the db
|
|
db=${words[i]}
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case ${db-} in
|
|
passwd)
|
|
COMPREPLY=($(compgen -u -- "$cur"))
|
|
return
|
|
;;
|
|
group)
|
|
COMPREPLY=($(compgen -g -- "$cur"))
|
|
return
|
|
;;
|
|
services)
|
|
COMPREPLY=($(compgen -s -- "$cur"))
|
|
return
|
|
;;
|
|
hosts)
|
|
COMPREPLY=($(compgen -A hostname -- "$cur"))
|
|
return
|
|
;;
|
|
protocols | networks | ahosts | ahostsv4 | ahostsv6 | rpc)
|
|
COMPREPLY=($(compgen -W "$($1 $db |
|
|
awk '{ print $1 }')" -- "$cur"))
|
|
return
|
|
;;
|
|
aliases | shadow | gshadow)
|
|
COMPREPLY=($(compgen -W "$($1 $db | cut -d: -f1)" -- "$cur"))
|
|
return
|
|
;;
|
|
ethers | netgroup)
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case $prev in
|
|
-s | --service)
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
elif [[ ! -v db ]]; then
|
|
COMPREPLY=($(compgen -W 'passwd group hosts services protocols
|
|
networks ahosts ahostsv4 ahostsv6 aliases ethers netgroup rpc
|
|
shadow gshadow' -- "$cur"))
|
|
fi
|
|
} &&
|
|
complete -F _getent getent
|
|
|
|
# ex: filetype=sh
|