summaryrefslogtreecommitdiff
path: root/shell-completion/zsh/_coredumpctl
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-06-19 13:46:01 +0200
committerLennart Poettering <lennart@poettering.net>2014-06-19 13:46:01 +0200
commitf4bab1690ebb7bb01ea2d89f92bffd26c04b61ee (patch)
tree8a25cc75a0ab867f7cbeba2ab93663dbd2651ad4 /shell-completion/zsh/_coredumpctl
parent92788e46d63e03c64146d90140599dbabf39627f (diff)
coredump: coredumpctl is so useful now, make it a first-class citizen
Drop the "systemd-" prefix, renaming it from "systemd-coredumpctl" to "coredumpctl".
Diffstat (limited to 'shell-completion/zsh/_coredumpctl')
-rw-r--r--shell-completion/zsh/_coredumpctl36
1 files changed, 36 insertions, 0 deletions
diff --git a/shell-completion/zsh/_coredumpctl b/shell-completion/zsh/_coredumpctl
new file mode 100644
index 000000000..d13bc703a
--- /dev/null
+++ b/shell-completion/zsh/_coredumpctl
@@ -0,0 +1,36 @@
+#compdef coredumpctl
+
+_coredumpctl_command(){
+ local -a _coredumpctl_cmds
+ _coredumpctl_cmds=(
+ 'list:List available 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' \
+ '--no-pager[Do not pipe output into a pager]' \
+ {-h,--help}'[Show this help]' \
+ '--version[Show package version]' \
+ '*::coredumpctl commands:_coredumpctl_command'