aboutsummaryrefslogtreecommitdiffstats
path: root/src/zsh_completion
diff options
context:
space:
mode:
authorLibravatar rusty-snake <41237666+rusty-snake@users.noreply.github.com>2021-03-03 12:33:41 +0100
committerLibravatar rusty-snake <41237666+rusty-snake@users.noreply.github.com>2021-03-03 12:33:41 +0100
commiteff12378dd671848e1ab7ead4403b4c64fd134da (patch)
tree7f59d8f0dd6a3f085d8cd4ed3375ca2405c9bc7a /src/zsh_completion
parentzsh-comp: order and sort (diff)
downloadfirejail-eff12378dd671848e1ab7ead4403b4c64fd134da.tar.gz
firejail-eff12378dd671848e1ab7ead4403b4c64fd134da.tar.zst
firejail-eff12378dd671848e1ab7ead4403b4c64fd134da.zip
zsh-comp: make some options mutually exclusive
Diffstat (limited to 'src/zsh_completion')
-rw-r--r--src/zsh_completion/_firejail.in30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/zsh_completion/_firejail.in b/src/zsh_completion/_firejail.in
index 6d8ed3cfc..df5ac0138 100644
--- a/src/zsh_completion/_firejail.in
+++ b/src/zsh_completion/_firejail.in
@@ -1,5 +1,8 @@
1#compdef firejail 1#compdef firejail
2 2
3# Documentation: man 1 zshcompsys
4# HowTo: https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org
5
3_all_firejails() { 6_all_firejails() {
4 local -a _all_firejails_list 7 local -a _all_firejails_list
5 for jail in ${(f)"$(_call_program modules_tag "firejail --list 2> /dev/null | cut -d: -f1")"}; do 8 for jail in ${(f)"$(_call_program modules_tag "firejail --list 2> /dev/null | cut -d: -f1")"}; do
@@ -37,8 +40,8 @@ _firejail_args=(
37 '--join=-[join the sandbox name|pid]: :_all_firejails' 40 '--join=-[join the sandbox name|pid]: :_all_firejails'
38 '--join-filesystem=-[join the mount namespace name|pid]: :_all_firejails' 41 '--join-filesystem=-[join the mount namespace name|pid]: :_all_firejails'
39 '--list[list all sandboxes]' 42 '--list[list all sandboxes]'
40 '--noprofile[do not use a security profile]' 43 '(--profile)--noprofile[do not use a security profile]'
41 '--profile=-[use a custom profile]: :_all_profiles' 44 '(--noprofile)--profile=-[use a custom profile]: :_all_profiles'
42 '--shutdown=-[shutdown the sandbox identified by name|pid]: :_all_firejails' 45 '--shutdown=-[shutdown the sandbox identified by name|pid]: :_all_firejails'
43 '--top[monitor the most CPU-intensive sandboxes]' 46 '--top[monitor the most CPU-intensive sandboxes]'
44 '--tree[print a tree of all sandboxed processes]' 47 '--tree[print a tree of all sandboxed processes]'
@@ -106,7 +109,7 @@ _firejail_args=(
106 '--private-cwd[do not inherit working directory inside jail]' 109 '--private-cwd[do not inherit working directory inside jail]'
107 '--private-cwd=-[set working directory inside jail]: :_files -/' 110 '--private-cwd=-[set working directory inside jail]: :_files -/'
108 '--private-dev[create a new /dev directory with a small number of common device files]' 111 '--private-dev[create a new /dev directory with a small number of common device files]'
109 '*--private-etc=-[build a new /etc in a temporary filesystem, and copy the files and directories in the list]: :_files' 112 '(--writable-etc)--private-etc=-[build a new /etc in a temporary filesystem, and copy the files and directories in the list]: :_files'
110 '--private-opt=-[build a new /opt in a temporary filesystem]: :' 113 '--private-opt=-[build a new /opt in a temporary filesystem]: :'
111 '--private-srv=-[build a new /srv in a temporary filesystem]: :' 114 '--private-srv=-[build a new /srv in a temporary filesystem]: :'
112 '--private-tmp[mount a tmpfs on top of /tmp directory]' 115 '--private-tmp[mount a tmpfs on top of /tmp directory]'
@@ -132,10 +135,10 @@ _firejail_args=(
132 '--shell=none[run the program directly without a user shell]' 135 '--shell=none[run the program directly without a user shell]'
133 '--shell=-[set default user shell]: :_files -g "*(*)"' 136 '--shell=-[set default user shell]: :_files -g "*(*)"'
134 '--timeout=-[kill the sandbox automatically after the time has elapsed]: :(hh\:mm\:ss)' 137 '--timeout=-[kill the sandbox automatically after the time has elapsed]: :(hh\:mm\:ss)'
135 '*--tmpfs=-[mount a tmpfs filesystem on directory dirname]: :_files -/' 138 #'(--tracelog)--trace[trace open, access and connect system calls]'
136 '--trace[trace open, access and connect system calls]' 139 '(--tracelog)--trace=-[trace open, access and connect system calls]: :_files'
137 '--tracelog[add a syslog message for every access to files or directories blacklisted by the security profile]' 140 '(--trace)--tracelog[add a syslog message for every access to files or directories blacklisted by the security profile]'
138 '--writable-etc[/etc directory is mounted read-write]' 141 '(--private-etc)--writable-etc[/etc directory is mounted read-write]'
139 '--writable-run-user[allow access to /run/user/$UID/systemd and /run/user/$UID/gnupg]' 142 '--writable-run-user[allow access to /run/user/$UID/systemd and /run/user/$UID/gnupg]'
140 '--writable-var[/var directory is mounted read-write]' 143 '--writable-var[/var directory is mounted read-write]'
141 '--writable-var-log[use the real /var/log directory, not a clone]' 144 '--writable-var-log[use the real /var/log directory, not a clone]'
@@ -146,7 +149,7 @@ _firejail_args=(
146#endif 149#endif
147 150
148#ifdef HAVE_CHROOT 151#ifdef HAVE_CHROOT
149 '--chroot=-[chroot into directory]: :_files -/' 152 '(--noroot --overlay --overlay-named --overlay-tmpfs)--chroot=-[chroot into directory]: :_files -/'
150#endif 153#endif
151 154
152#ifdef HAVE_DBUSPROXY 155#ifdef HAVE_DBUSPROXY
@@ -208,10 +211,10 @@ _firejail_args=(
208#endif 211#endif
209 212
210#ifdef HAVE_OVERLAYFS 213#ifdef HAVE_OVERLAYFS
211 '--overlay[mount a filesystem overlay on top of the current filesystem]' 214 '(--chroot --noroot)--overlay[mount a filesystem overlay on top of the current filesystem]'
212 '--overlay-clean[clean all overlays stored in $HOME/.firejail directory]' 215 '--overlay-clean[clean all overlays stored in $HOME/.firejail directory]'
213 '--overlay-named=-[mount a filesystem overlay on top of the current filesystem, and store it in name directory]: :_files -/' 216 '(--chroot --noroot)--overlay-named=-[mount a filesystem overlay on top of the current filesystem, and store it in name directory]: :_files -/'
214 '--overlay-tmpfs[mount a temporary filesystem overlay on top of the current filesystem]' 217 '(--chroot --noroot)--overlay-tmpfs[mount a temporary filesystem overlay on top of the current filesystem]'
215#endif 218#endif
216 219
217#ifdef HAVE_PRIVATE_HOME 220#ifdef HAVE_PRIVATE_HOME
@@ -219,11 +222,12 @@ _firejail_args=(
219#endif 222#endif
220 223
221#ifdef HAVE_USERNS 224#ifdef HAVE_USERNS
222 '--noroot[install a user namespace with only the current user]' 225 '(--chroot --overlay --overlay-named --overlay-tmpfs)--noroot[install a user namespace with only the current user]'
223#endif 226#endif
224 227
225#ifdef HAVE_USERTMPFS 228#ifdef HAVE_USERTMPFS
226 '--private-cache[temporary ~/.cache directory]' 229 '--private-cache[temporary ~/.cache directory]'
230 '*--tmpfs=-[mount a tmpfs filesystem on directory dirname]: :_files -/'
227#endif 231#endif
228 232
229#ifdef HAVE_WHITELIST 233#ifdef HAVE_WHITELIST
@@ -260,3 +264,5 @@ _firejail() {
260 ;; 264 ;;
261 esac 265 esac
262} 266}
267
268# vim: ft=zsh sw=2 ts=2 et