forked from github/abduco
36 lines
1.1 KiB
Bash
36 lines
1.1 KiB
Bash
#compdef abduco
|
|
|
|
typeset -A opt_args
|
|
|
|
_abduco_sessions() {
|
|
declare -a sessions
|
|
sessions=( $(abduco | sed '1d;s/.*\t[0-9][0-9]*\t//') )
|
|
_describe -t session 'session' sessions
|
|
}
|
|
|
|
_abduco_firstarg() {
|
|
if (( $+opt_args[-a] || $+opt_args[-A] )); then
|
|
_abduco_sessions
|
|
elif (( $+opt_args[-c] || $+opt_args[-n] )); then
|
|
_guard "^-*" 'session name'
|
|
elif [[ -z $words[CURRENT] ]]; then
|
|
compadd "$@" -S '' -- -
|
|
fi
|
|
}
|
|
|
|
_arguments -s \
|
|
'(-a -A -c -n -f)-a[attach to an existing session]' \
|
|
'(-a -A -c -n)-A[attach to a session, create if does not exist]' \
|
|
'(-a -A -c -n -l)-c[create a new session and attach to it]' \
|
|
'(-a -A -c -n -l)-n[create a new session but do not attach to it]' \
|
|
'-e[set the detachkey (default: ^\\)]:detachkey' \
|
|
'(-a)-f[force create the session]' \
|
|
'(-q)-p[pass-through mode]' \
|
|
'-q[be quiet]' \
|
|
'-r[read-only session, ignore user input]' \
|
|
'(-c -n)-l[attach with the lowest priority]' \
|
|
'(-)-v[show version information and exit]' \
|
|
'1: :_abduco_firstarg' \
|
|
'2:command:_path_commands' \
|
|
'*:: :{ shift $((CURRENT-3)) words; _precommand; }'
|