_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
_describe -t commands 'systemd-coredumpctl command' _systemd_coredumpctl_cmds
else
local curcontext="$curcontext"
- local -a dumps
+ local -a _dumps
cmd="${${_systemd_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
if (( $#cmd )); then
- dumps=( "${(f)$(_call_program dumps "systemd-coredumpctl list 2>/dev/null")}" )
- if [[ -n "$dumps" ]]; then
- compadd "${dumps[@]}"
+ # user can set zstyle ':completion:*:*:systemd-coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid
+ _dumps=( "${(foa)$(systemd-coredumpctl list | awk 'BEGIN{OFS=":"} /^\s/ {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" )
+ if [[ -n "$_dumps" ]]; then
+ _describe -t pids 'coredumps' _dumps
else
_message "no coredumps"
fi
'--kernel[Print the kernel uevents.]' \
'--udev[Print the udev event after the rule processing.]' \
'--property[Also print the properties of the event.]' \
- '--subsystem-match=[Filter events by subsystem[/devtype].]' \
+ '--subsystem-match=[Filter events by subsystem/\[devtype\].]' \
'--tag-match=[Filter events by property.]' \
'--help[Print help text.]'
}