abduco

Fork of abduco for persistent terminal sessions
git clone git://git.laack.co/abduco.git
Log | Files | Refs | README | LICENSE

abduco.zsh (1108B)


      1 #compdef abduco
      2 
      3 typeset -A opt_args
      4 
      5 _abduco_sessions() {
      6   declare -a sessions
      7   sessions=( $(abduco | sed '1d;s/.*\t[0-9][0-9]*\t//') )
      8   _describe -t session 'session' sessions
      9 }
     10 
     11 _abduco_firstarg() {
     12   if (( $+opt_args[-a] || $+opt_args[-A] )); then
     13     _abduco_sessions
     14   elif (( $+opt_args[-c] || $+opt_args[-n] )); then
     15     _guard "^-*" 'session name'
     16   elif [[ -z $words[CURRENT] ]]; then
     17     compadd "$@" -S '' -- -
     18   fi
     19 }
     20 
     21 _arguments -s \
     22   '(-a -A -c -n -f)-a[attach to an existing session]' \
     23   '(-a -A -c -n)-A[attach to a session, create if does not exist]' \
     24   '(-a -A -c -n -l)-c[create a new session and attach to it]' \
     25   '(-a -A -c -n -l)-n[create a new session but do not attach to it]' \
     26   '-e[set the detachkey (default: ^\\)]:detachkey' \
     27   '(-a)-f[force create the session]' \
     28   '(-q)-p[pass-through mode]' \
     29   '-q[be quiet]' \
     30   '-r[read-only session, ignore user input]' \
     31   '(-c -n)-l[attach with the lowest priority]' \
     32   '(-)-v[show version information and exit]' \
     33   '1: :_abduco_firstarg' \
     34   '2:command:_path_commands' \
     35   '*:: :{ shift $((CURRENT-3)) words; _precommand; }'