summaryrefslogtreecommitdiff
path: root/shell-completion/zsh/_systemd-coredumpctl
diff options
context:
space:
mode:
authorWilliam Giokas <1007380@gmail.com>2013-07-29 14:09:10 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-08-02 10:43:42 -0400
commit70e104c4e39d47b3b2a82654bbf1a559b57a9c68 (patch)
tree75032830405b5d01af9324bd8313860aaa706732 /shell-completion/zsh/_systemd-coredumpctl
parentc4c12f133e22af6e3e193f3312e7cad61fa1b881 (diff)
zsh_completion: Split out zsh _coredumpctl
Diffstat (limited to 'shell-completion/zsh/_systemd-coredumpctl')
-rw-r--r--shell-completion/zsh/_systemd-coredumpctl34
1 files changed, 34 insertions, 0 deletions
diff --git a/shell-completion/zsh/_systemd-coredumpctl b/shell-completion/zsh/_systemd-coredumpctl
new file mode 100644
index 0000000000..f5d12cbcd1
--- /dev/null
+++ b/shell-completion/zsh/_systemd-coredumpctl
@@ -0,0 +1,34 @@
+#compdef systemd-coredumpctl
+
+_systemd-coredumpctl_command(){
+ local -a _systemd_coredumpctl_cmds
+ _systemd_coredumpctl_cmds=(
+ 'list:List available coredumps'
+ 'dump:Print coredump to std'
+ )
+ if (( CURRENT == 1 )); then
+ _describe -t commands 'systemd-coredumpctl command' _systemd_coredumpctl_cmds
+ else
+ local curcontext="$curcontext"
+ local -a _dumps
+ cmd="${${_systemd_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
+ if (( $#cmd )); then
+ # 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
+ else
+ _message "no more options"
+ fi
+ fi
+}
+
+_arguments \
+ {-o,--output=}'[Write output to FILE]:output file:_files' \
+ '--no-pager[Do not pipe output into a pager]' \
+ {-h,--help}'[Show this help]' \
+ '--version[Show package version]' \
+ '*::systemd-coredumpctl commands:_systemd-coredumpctl_command'