diff --git a/root/usr/share/bash-completion/completions/aa-log b/root/usr/share/bash-completion/completions/aa-log new file mode 100644 index 000000000..bd367d80c --- /dev/null +++ b/root/usr/share/bash-completion/completions/aa-log @@ -0,0 +1,26 @@ +# aa-log completion + +_aa-log() { + COMPREPLY=() + local cur="${COMP_WORDS[COMP_CWORD]}" + local args=(-f -d -h) + local lastarg="${COMP_WORDS[$COMP_CWORD-1]}" + COMPREPLY+=($(compgen -W "${args[*]}" -- ${cur})) + if [[ $lastarg == "-f" ]]; then + COMPREPLY+=($(compgen -W "$(__aa_files)" -- ${cur})) + COMPREPLY+=($(compgen -o filenames -A file -- ${cur})) + else + COMPREPLY+=($(compgen -W "${args[*]}" -- ${cur})) + COMPREPLY+=($(compgen -W "$(__aa_profiles)" -- ${cur})) + fi +} + +__aa_files() { + find /var/log/audit/ -type f -printf '%P\n' | cut -d '.' -f 3 +} + +__aa_profiles() { + find -L /etc/apparmor.d -maxdepth 1 -type f -printf '%P\n' | sort +} + +complete -F _aa-log aa-log diff --git a/root/usr/share/zsh/site-functions/_aa-log.zsh b/root/usr/share/zsh/site-functions/_aa-log.zsh index 0e0603fcb..2e77a0774 100644 --- a/root/usr/share/zsh/site-functions/_aa-log.zsh +++ b/root/usr/share/zsh/site-functions/_aa-log.zsh @@ -1,22 +1,23 @@ #compdef aa-log #autoload -_aa-log () { +_aa-log() { local IFS=$'\n' _arguments : \ - -f'[set a logfile or a prefix to the default log file]:_files' \ + -f'[set a logfile or a prefix to the default log file]:FILE:__aa_files' \ + -d'[show dbus session event]' \ -h'[display help information]' _values -C 'profile names' ${$(__aa_profiles):-""} } +__aa_files() { + find /var/log/audit/ -type f -printf '%P\n' | cut -d '.' -f 3 + _files +} + __aa_profiles() { - find -L /etc/apparmor.d -type f -printf '%P\n' \ - | sed -e '/abi/d' \ - -e '/abstractions/d' \ - -e '/local/d' \ - -e '/tunables/d' \ - | sort + find -L /etc/apparmor.d -maxdepth 1 -type f -printf '%P\n' | sort } _aa-log