mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#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 "$@"
 |