diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Linux/Type/_capabilities | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Completion/Linux/Type/_capabilities b/Completion/Linux/Type/_capabilities new file mode 100644 index 000000000..8cb31878f --- /dev/null +++ b/Completion/Linux/Type/_capabilities @@ -0,0 +1,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 |