Files
RedBear-OS/recipes/shells/zsh/source/Completion/Unix/Command/_getent
T
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00

66 lines
2.0 KiB
Plaintext

#compdef getent
local curcontext="$curcontext" state line expl ret=1
local services databases keys
local -a args
typeset -A opt_args
if _pick_variant -r is_gnu gnu='(Free Soft|GNU|GLIBC|Gentoo)' unix --version; then
args+=(
'(- 1 *)'{-\?,--help}'[display help information]'
'(- 1 *)--usage[display a short usage message]'
'(- 1 *)'{-V,--version}'[display version information]'
'*'{-s+,--service=}'[specify service configuration to use]: :->services'
'(-i --no-idn)'{-i,--no-idn}'[disable IDN encoding]'
)
fi
_arguments -s -S -C "$args[@]" \
'1:database:->databases' \
'*:key:->keys' && ret=0
case $state in
services)
# @todo GNU getent supports both `-s svc` and `-s db:svc`; we only complete
# the former here
services=( {,/usr}/lib/{,*-linux-gnu/}libnss_*(N-.:fr:t:s/libnss_//) )
_wanted services expl 'service or database:service' \
compadd ${(u)services%-*} \
&& ret=0
;;
databases)
if [[ $is_gnu = gnu ]]; then
databases=( "${(@)${(@f)$(_call_program databases $words[1] --help \
2>/dev/null)}[(r)Supported*,-1]}" )
databases=( "${=${(@)databases[2,${(@)databases[(i)]}-1]}}" )
elif [[ $OSTYPE = freebsd* ]]; then
databases=( ${=${(f)"$(_call_program databases $words[1] 2>&1)"}[-1]} )
else
databases=( passwd group hosts ipnodes services protocols ethers networks netmasks )
fi
_wanted databases expl database compadd -a databases && ret=0
;;
keys)
keys=( ${(f)"$(_call_program keys $words[1] ${(kv)opt_args[(i)-s|--service]} $line[1] 2>/dev/null)"} )
case $line[1] in
*hosts) _wanted keys expl key compadd ${=keys#* } && ret=0 ;;
networks|rpc|protocols|services)
_wanted keys expl key compadd ${=keys%% *} && ret=0
;;
aliases|passwd|shadow|group)
_wanted keys expl key compadd ${keys%%:*} && ret=0
;;
utmpx)
if (( CURRENT > 3 )); then
_files && ret=0
else
_wanted keys expl key compadd active lastlogin log && ret=0
fi
;;
*) _message -e keys key;;
esac
;;
esac
return ret