about summary refs log tree commit diff
path: root/Completion/Unix/Command/_twidge
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2011-08-17 10:24:34 +0000
committerMikael Magnusson <mikachu@gmail.com>2011-08-17 10:24:34 +0000
commit2a79494070d9805a7f3ab97ba18ae2733737ec52 (patch)
tree02f68b46d07a7f9c053d45eae3ca5fd4a525b892 /Completion/Unix/Command/_twidge
parent7ae79966147f97eed54f5705782685170d7c1a97 (diff)
downloadzsh-2a79494070d9805a7f3ab97ba18ae2733737ec52.tar.gz
zsh-2a79494070d9805a7f3ab97ba18ae2733737ec52.tar.xz
zsh-2a79494070d9805a7f3ab97ba18ae2733737ec52.zip
29690: new _twidge and _cryptsetup completers from Daniel Friesel.
Diffstat (limited to 'Completion/Unix/Command/_twidge')
-rw-r--r--Completion/Unix/Command/_twidge77
1 files changed, 77 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_twidge b/Completion/Unix/Command/_twidge
new file mode 100644
index 000000000..d8b3b3def
--- /dev/null
+++ b/Completion/Unix/Command/_twidge
@@ -0,0 +1,77 @@
+#compdef twidge
+## completion for twidge 1.0.8, based on twidge(1)
+
+function _twidge_command {
+	typeset -a twidge_commands
+	typeset -i skip=1
+
+	twidge lscommands | while read cmd desc; do
+		if [[ $cmd == ---* ]] {
+			skip=0
+			continue
+		}
+		if (( skip )) {
+			continue
+		}
+		twidge_commands+="${cmd}:${desc}"
+	done
+
+	_describe command twidge_commands
+}
+
+function _twidge_args {
+	typeset -a args_common args_more args_other args_update
+
+	args_common=(
+		'(-a --all)'{-a,--all}'[receive all content]'
+		'(-e --exec)'{-e,--exec}'[execute command for each retrieved item]:command'
+		'(-l --long)'{-l,--long}'[long output format]'
+		'(-m --mailto)'{-m,--mailto}'[mail retrieved items]:mail address'
+	)
+
+	args_more=(
+		'(-s --saveid)'{-s,--saveid}'[save ID of most recent message]'
+		'(-u --unseen)'{-u,--unseen}'[only show unseen messages]'
+	)
+
+	args_other=(
+		'(-U --username)'{-U,--username}'[show updates of different user]:username'
+	)
+
+	args_update=(
+		'(-i --inreplyto)'{-i,--inreplyto}'[update in reply to a message]:message id'
+		'(-i --inreplyto 1)-r[read RFC2822 Mail]'
+		':status'
+	)
+
+	case ${words[1]} in
+		lsarchive)
+			_arguments $args_common $args_more $args_other
+			;;
+		ls(dm(|archive)|recent|replies|rt(|archive|replies)))
+			_arguments $args_common $args_more
+			;;
+		lsfollow(ers|ing))
+			_arguments $args_common :username
+			;;
+		dmsend)
+			_arguments :recipient :status
+			;;
+		(un|)follow)
+			_message username
+			;;
+		update)
+			_arguments $args_update
+			;;
+	esac
+}
+
+function _twidge {
+	_arguments \
+	'(-c --config)'{-c,--config}'[config file]:file:_files' \
+	'(-d --debug)'{-d,--debug}'[enable debugging output]' \
+	'(-): :_twidge_command' \
+	'(-)*:: :_twidge_args'
+}
+
+_twidge "$@"