summaryrefslogtreecommitdiffstats
path: root/shell-completion/zsh/_coredumpctl
diff options
context:
space:
mode:
Diffstat (limited to 'shell-completion/zsh/_coredumpctl')
-rw-r--r--shell-completion/zsh/_coredumpctl47
1 files changed, 47 insertions, 0 deletions
diff --git a/shell-completion/zsh/_coredumpctl b/shell-completion/zsh/_coredumpctl
new file mode 100644
index 0000000..dad21a7
--- /dev/null
+++ b/shell-completion/zsh/_coredumpctl
@@ -0,0 +1,47 @@
+#compdef coredumpctl
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+(( $+functions[_coredumpctl_commands] )) ||
+_coredumpctl_commands(){
+ local -a _coredumpctl_cmds
+ _coredumpctl_cmds=(
+ 'list:List available coredumps'
+ 'info:Show detailed information about one or more coredumps'
+ 'dump:Print coredump to stdout'
+ 'debug:Start debugger (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
+ _dumps=( "${(f)$(coredumpctl list -q --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $4,$0}' 2>/dev/null)}" )
+ if [[ -n "$_dumps" ]]; then
+ _describe -V -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]' \
+ {-S,--since}'[Print entries since the specified date]' \
+ {-U,--until}'[Print entries until the specified date]' \
+ {-r,--reverse}'[Show the newest entries first]' \
+ '--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]' \
+ '--debugger=[Use the given debugger]:debugger: _command_names -e' \
+ {-D,--directory=}'[Use the journal files in the specified dir]:directory: _directories' \
+ {-q,--quiet}'[Do not show info messages and privilege warning]' \
+ '--all[Look at all journal files instead of local ones]' \
+ '*::coredumpctl commands:_coredumpctl_commands'