chiark / gitweb /
shell-completions: systemd-analyze set-log-level
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 23 Aug 2013 03:25:28 +0000 (23:25 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 28 Aug 2013 12:04:56 +0000 (08:04 -0400)
shell-completion/bash/systemd-analyze
shell-completion/zsh/_systemd-analyze

index 33833aac105f0c0351660dd6c13e14fe3da8d9a2..5bd676866b425eebe6a7ef41bc72089ea101c8af 100644 (file)
@@ -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") )
index 13e96c0586caf65a8c467392e339a4974358b306..37c60f5b40f154288398f4d85a420611416f1c5e 100644 (file)
@@ -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
 }