about summary refs log tree commit diff
path: root/Completion/Linux/Type/_capabilities
blob: 8cb31878f75c9d887dfe9c89e8c952679cd0028d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#autoload

# This function completes POSIX capabilities for Linux.
# Many command line utilities expect different syntax to encode various kinds
# of capability names or sets, so this function tries to be as generic as
# possible. It accepts compadd options to allow variations on the exact
# generated completion matches.
#
# Usage examples:
#
# Complete full capability names:
#   _capabilities -p cap_
# Sort the completion list by capability number:
#   _capabilities -o nosort

# The list of Linux capabilities is taken from include/uapi/linux/capability.h
# and subject to the following pipe filter:
# grep 'define CAP' | sed -r 's/^[[:space:]]*#define[[:space:]]+CAP_//; s/[[:space:]]+[0-9]+$//' | tr '[[:upper:]]' '[[:lower:]]'
local -a caplist=(
  chown
  dac_override
  dac_read_search
  fowner
  fsetid
  kill
  setgid
  setuid
  setpcap
  linux_immutable
  net_bind_service
  net_broadcast
  net_admin
  net_raw
  ipc_lock
  ipc_owner
  sys_module
  sys_rawio
  sys_chroot
  sys_ptrace
  sys_pacct
  sys_admin
  sys_boot
  sys_nice
  sys_resource
  sys_time
  sys_tty_config
  mknod
  lease
  audit_write
  audit_control
  setfcap
  mac_override
  mac_admin
  syslog
  wake_alarm
  block_suspend
  audit_read
  perfmon
  bpf
  checkpoint_restore
)
local -a expl

_description capabilities expl "Linux capability"
compadd "${(@)expl}" "$@" -a - caplist