chiark / gitweb /
zsh-completion: add s-a critical-chain
[elogind.git] / shell-completion / systemd-zsh-completion.zsh
index 52a5fdb4607caa90e1cea33a86083f11e4e9751a..a30fcf8c059b87f17bd266267cf973428a2fa767 100644 (file)
@@ -12,6 +12,9 @@ _ctls()
                 {-t,--type=}'[List only units of a particular type]:unit type:(automount device mount path service snapshot socket swap target timer)' \
                 \*{-p,--property=}'[Show only properties by specific name]:unit property' \
                 {-a,--all}'[Show all units/properties, including dead/empty ones]' \
+                '--reverse[Show reverse dependencies]' \
+                '--after[Show units ordered after]' \
+                '--before[Show units ordered before]' \
                 '--failed[Show only failed units]' \
                 "--full[Don't ellipsize unit names on output]" \
                 '--fail[When queueing a new job, fail if conflicting jobs are pending]' \
@@ -291,11 +294,13 @@ _systemd_inhibit_command(){
 
 _systemd_analyze_command(){
     local -a _systemd_analyze_cmds
+    # Descriptions taken from systemd-analyze --help.
     _systemd_analyze_cmds=(
-        'time:Print the time taken to start'
-        'blame:prints a list of all running units, ordered by the time they took to initialize'
-        'plot:prints an SVG graphic detailing which system services have been started at what time'
-        'dot:Dump dependency graph for dot(1)'
+        'time:Print time spent in the kernel before reaching userspace'
+        'blame:Print list of running units ordered by time to init'
+        '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)'
     )
 
     if (( CURRENT == 1 )); then
@@ -348,6 +353,8 @@ _outputmodes() {
     "disable:Disable one or more unit files"
     "reenable:Reenable one or more unit files"
     "preset:Enable/disable one or more unit files based on preset configuration"
+    "help:Show documentation for specified units"
+    "list-dependencies:Show unit dependency tree"
     "mask:Mask one or more units"
     "unmask:Unmask one or more units"
     "link:Link one or more units files into the search path"
@@ -455,14 +462,14 @@ _filter_units_by_property() {
 }
 
 _systemctl_active_units()  {_sys_active_units=(  $(__systemctl list-units          | { while read a b; do echo " $a"; done; }) )}
-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all    | { while read a b c d; do [[ $c == "inactive" ]] && echo " $a"; done; }) )}
+_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all    | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )}
 _systemctl_failed_units()  {_sys_failed_units=(  $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )}
 _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files     | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )}
 _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files     | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )}
 _systemctl_masked_units()  {_sys_masked_units=(  $(__systemctl list-unit-files     | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )}
 
 # Completion functions for ALL_UNITS
-for fun in is-active is-failed is-enabled status show mask preset ; do
+for fun in is-active is-failed is-enabled status show mask preset help list-dependencies ; do
   (( $+functions[_systemctl_$fun] )) || _systemctl_$fun()
   {
     _systemctl_really_all_units
@@ -475,7 +482,8 @@ for fun in disable reenable ; do
   (( $+functions[_systemctl_$fun] )) || _systemctl_$fun()
   {
     _systemctl_enabled_units
-    compadd "$@" -a - _sys_enabled_units
+    _systemctl_disabled_units
+    compadd "$@" -a - _sys_enabled_units _sys_disabled_units
   }
 done
 
@@ -535,7 +543,7 @@ for fun in restart reload-or-restart ; do
     _systemctl_all_units
     compadd "$@" - $( _filter_units_by_property CanStart yes \
       ${_sys_all_units[*]} | while read line; do \
-      [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \
+      [[ "$line" =~ \.device$ ]] || echo " $line"; \
       done )
   }
 done