From fe05567c31cb88593a09ce5d8961d8b20627feb1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 22 Aug 2013 23:25:28 -0400 Subject: [PATCH 1/1] shell-completions: systemd-analyze set-log-level --- shell-completion/bash/systemd-analyze | 9 +++++++++ shell-completion/zsh/_systemd-analyze | 19 ++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze index 33833aac1..5bd676866 100644 --- a/shell-completion/bash/systemd-analyze +++ b/shell-completion/bash/systemd-analyze @@ -34,6 +34,7 @@ _systemd_analyze() { [NO_OPTION]='time blame plot' [CRITICAL_CHAIN]='critical-chain' [DOT]='dot' + [LOG_LEVEL]='set-log-level' ) _init_completion || return @@ -68,6 +69,14 @@ _systemd_analyze() { if [[ $cur = -* ]]; then comps='--help --version --system --user --from-pattern --to-pattern --order --require' fi + + elif __contains_word "$verb" ${VERBS[LOG_LEVEL]}; then + if [[ $cur = -* ]]; then + comps='--help --version --system --user' + else + comps='debug info notice warning err crit alert emerg' + fi + fi COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) diff --git a/shell-completion/zsh/_systemd-analyze b/shell-completion/zsh/_systemd-analyze index 13e96c058..37c60f5b4 100644 --- a/shell-completion/zsh/_systemd-analyze +++ b/shell-completion/zsh/_systemd-analyze @@ -1,5 +1,11 @@ #compdef systemd-analyze +_systemd_analyze_set-log-level() { + local -a _levels + _levels=(debug info notice warning err crit alert emerg) + _describe -t level 'logging level' _levels || compadd "$@" +} + _systemd_analyze_command(){ local -a _systemd_analyze_cmds # Descriptions taken from systemd-analyze --help. @@ -9,12 +15,23 @@ _systemd_analyze_command(){ 'critical-chain:Print a tree of the time critical chain of units' 'plot:Output SVG graphic showing service initialization' 'dot:Dump dependency graph (in dot(1) format)' + 'set-log-level:Set systemd log threshold' ) if (( CURRENT == 1 )); then _describe "options" _systemd_analyze_cmds else - _message "no more options" + local curcontext="$curcontext" + cmd="${${_systemd_analyze_cmds[(r)$words[1]:*]%%:*}}" + if (( $#cmd )); then + if (( $+functions[_systemd_analyze_$cmd] )) && (( CURRENT == 2 )); then + _systemd_analyze_$cmd + else + _message "no more options" + fi + else + _message "unknown systemd-analyze command: $words[1]" + fi fi } -- 2.30.2