-#compdef coredumpctl
-
-_coredumpctl_command(){
- local -a _coredumpctl_cmds
- _coredumpctl_cmds=(
- 'list:List available coredumps'
- 'info:Show detailed information about one or more coredumps'
- 'dump:Print coredump to stdout'
- 'gdb:Start gdb on a coredump'
- )
- if (( CURRENT == 1 )); then
- _describe -t commands 'coredumpctl command' _coredumpctl_cmds
- else
- local curcontext="$curcontext"
- local -a _dumps
- cmd="${${_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
- if (( $#cmd )); then
- # user can set zstyle ':completion:*:*:coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid
- _dumps=( "${(foa)$(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
- else
- _message "no more options"
- fi
- fi
-}
-
-_arguments \
- {-o+,--output=}'[Write output to FILE]:output file:_files' \
- {-F+,--field=}'[Show field in list output]:field' \
- '-1[Show information about most recent entry only]' \
- '--no-pager[Do not pipe output into a pager]' \
- '--no-legend[Do not print the column headers]' \
- {-h,--help}'[Show this help]' \
- '--version[Show package version]' \
- '*::coredumpctl commands:_coredumpctl_command'