From 8d1a8f099dbf79d0e18e055721228192a637a759 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 6 Dec 2018 18:51:56 +0100 Subject: [PATCH] bash-completion: analyze: support 'security' (cherry picked from commit 83da42c3bf86e8787cfec2c7fb6ca379dfec3632) Resolves: #1733395 --- shell-completion/bash/systemd-analyze | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze index 21d0fcf1b8..b4fcfc6492 100644 --- a/shell-completion/bash/systemd-analyze +++ b/shell-completion/bash/systemd-analyze @@ -31,8 +31,13 @@ __get_machines() { machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; } +__get_services() { + systemctl list-units --no-legend --no-pager -t service --all $1 | \ + { while read -r a b c; do [[ $b == "loaded" ]]; echo " $a"; done } +} + _systemd_analyze() { - local i verb comps + local i verb comps mode local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} local -A OPTS=( @@ -51,6 +56,7 @@ _systemd_analyze() { [SECCOMP_FILTER]='syscall-filter' [SERVICE_WATCHDOGS]='service-watchdogs' [CAT_CONFIG]='cat-config' + [SECURITY]='security' ) local CONFIGS='systemd/bootchart.conf systemd/coredump.conf systemd/journald.conf @@ -149,6 +155,18 @@ _systemd_analyze() { comps="$CONFIGS $( compgen -A file -- "$cur" )" compopt -o filenames fi + + elif __contains_word "$verb" ${VERBS[SECURITY]}; then + if [[ $cur = -* ]]; then + comps='--help --version --no-pager --system --user -H --host -M --machine' + else + if __contains_word "--user" ${COMP_WORDS[*]}; then + mode=--user + else + mode=--system + fi + comps=$( __get_services $mode ) + fi fi COMPREPLY=( $(compgen -W '$comps' -- "$cur") )