about summary refs log tree commit diff
path: root/Completion/Unix/Type/_groups
blob: b6d599c28e537d95ee0942a10c05814cb887dd48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#compdef newgrp groupdel

local expl groups tmp

_tags groups || return 1

if ! zstyle -a ":completion:${curcontext}:" groups groups; then
  (( $+_cache_groups )) ||
      if (( ${+commands[getent]} )); then
        : ${(A)_cache_groups:=${${(s: :)$(_call_program groups getent group 2>/dev/null)}%%:*}}
      else
        : ${(A)_cache_groups:=${${${(s: :)$(</etc/group)}%%:*}:#+}}
	if (( ${+commands[ypcat]} )) &&
	    tmp=$(_call_program groups ypcat group.byname 2>/dev/null); then
          _cache_groups+=( ${${(f)tmp}%%:*} ) # If you use YP
	fi
      fi

  groups=( "$_cache_groups[@]" )
fi

_wanted groups expl group compadd "$@" -a groups