diff options
author | Harald Kubota <harald.kubota@gmail.com> | 2021-01-02 15:32:15 +0900 |
---|---|---|
committer | Harald Kubota <harald.kubota@gmail.com> | 2021-02-12 21:39:44 +0900 |
commit | a37ffc3374e23b8e6318965d84e408acf7a46b73 (patch) | |
tree | 0a0fac6fc98c14ec57ee3fff52ea641d37b72bff /src/bash_completion | |
parent | fix #3859 (#3863) (diff) | |
download | firejail-a37ffc3374e23b8e6318965d84e408acf7a46b73.tar.gz firejail-a37ffc3374e23b8e6318965d84e408acf7a46b73.tar.zst firejail-a37ffc3374e23b8e6318965d84e408acf7a46b73.zip |
Add first version of zsh completion
Don't have duplicate descriptions and put = signs where they belong to
zsh completion function now dynamically adjusts for options (e.g. no --apparmor option without AppArmor configured)
No EXTRA_CFLAGS for cpp
Found main.c which does the argument processing. Moved some arguments into the correct #ifdef blocks
Profile selection now much better
Not more cpp. Using preproc.awk instead.
Updated bash firejail command completion to add profiles
ignore bash and zsh dynamically created completion scripts
Moved bash/zsh completions out of ALL_ITEMS to fix make install
Cleanup
Diffstat (limited to 'src/bash_completion')
-rw-r--r-- | src/bash_completion/Makefile.in | 14 | ||||
-rw-r--r-- | src/bash_completion/firejail.bash_completion.in (renamed from src/bash_completion/firejail.bash_completion) | 13 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/bash_completion/Makefile.in b/src/bash_completion/Makefile.in new file mode 100644 index 000000000..d8a393aa4 --- /dev/null +++ b/src/bash_completion/Makefile.in | |||
@@ -0,0 +1,14 @@ | |||
1 | all: firejail.bash_completion | ||
2 | |||
3 | include ../common.mk | ||
4 | |||
5 | firejail.bash_completion: firejail.bash_completion.in | ||
6 | gawk -f ../man/preproc.awk -- $(MANFLAGS) < $< > $@.tmp | ||
7 | sed "s|_SYSCONFDIR_|$(sysconfdir)|" < $@.tmp > $@ | ||
8 | rm $@.tmp | ||
9 | |||
10 | clean: | ||
11 | rm -fr firejail.bash_completion | ||
12 | |||
13 | distclean: clean | ||
14 | rm -fr Makefile | ||
diff --git a/src/bash_completion/firejail.bash_completion b/src/bash_completion/firejail.bash_completion.in index 0a1b34d7d..00f04c310 100644 --- a/src/bash_completion/firejail.bash_completion +++ b/src/bash_completion/firejail.bash_completion.in | |||
@@ -9,6 +9,17 @@ __interfaces(){ | |||
9 | cut -f 1 -d ':' /proc/net/dev | tail -n +3 | grep -v lo | xargs | 9 | cut -f 1 -d ':' /proc/net/dev | tail -n +3 | grep -v lo | xargs |
10 | } | 10 | } |
11 | 11 | ||
12 | _profiles() { | ||
13 | if [[ -d "$1" ]] ; then | ||
14 | ls -1 $1/*.profile 2>/dev/null | sed -E 's;^.*\/;;g' | ||
15 | fi | ||
16 | } | ||
17 | _all_profiles() { | ||
18 | local sys_profiles=$(_profiles _SYSCONFDIR_/firejail) | ||
19 | local user_profiles=$(_profiles $HOME/.config/firejail) | ||
20 | COMPREPLY=($(compgen -W "${sys_profiles} ${user_profiles}" -- "$cur")) | ||
21 | } | ||
22 | |||
12 | 23 | ||
13 | _firejail() | 24 | _firejail() |
14 | { | 25 | { |
@@ -20,7 +31,7 @@ _firejail() | |||
20 | return 0 | 31 | return 0 |
21 | ;; | 32 | ;; |
22 | --profile) | 33 | --profile) |
23 | _filedir | 34 | _all_profiles |
24 | return 0 | 35 | return 0 |
25 | ;; | 36 | ;; |
26 | --hosts-file) | 37 | --hosts-file) |