72 lines
2.7 KiB
Plaintext
72 lines
2.7 KiB
Plaintext
#compdef atach
|
|
# ------------------------------------------------------------------------------
|
|
# Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
# a copy of this software and associated documentation files (the
|
|
# "Software"), to deal in the Software without restriction, including
|
|
# without limitation the rights to use, copy, modify, merge, publish,
|
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
# permit persons to whom the Software is furnished to do so, subject to
|
|
# the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included
|
|
# in all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
# OTHER DEALINGS IN THE SOFTWARE.
|
|
# ------------------------------------------------------------------------------
|
|
# Description
|
|
# -----------
|
|
#
|
|
# Completion script for atach (https://github.com/sorin-ionescu/atach).
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
# Authors
|
|
# -------
|
|
#
|
|
# * Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
|
|
local state mode_values existing_sessions ret=1
|
|
|
|
mode_values=(
|
|
"none:disable redrawing"
|
|
"ctrl_l:use ctrl + l to redraw"
|
|
"winch:use sigwinch to redraw"
|
|
)
|
|
|
|
existing_sessions=($(_call_program session atach))
|
|
|
|
_arguments -C -s -S \
|
|
'(--list -l)'{--list,-l}'[list sessions]' \
|
|
'(--sockets -L)'{--sockets,-L}'[list sockets]' \
|
|
'(--session -s)'{--session=,-s+}'[set the session name]:session' \
|
|
'(--char -c)'{--char=,-c+}'[set the detach character (default: ^\\)]:char' \
|
|
'(--redraw -r)'{--redraw=,-r+}'[set the redraw method (none, ctrl_l, or winch)]:mode:->mode' \
|
|
'(--detached -d)'{--detached,-d}'[start the session detached]' \
|
|
'(--no-detach -D)'{--no-detach,-D}'[disable detaching]' \
|
|
'(--no-suspend -Z)'{--no-suspend,-Z}'[disable suspending]' \
|
|
'(--version -v)'{--version,-v}'[display version and copyright]' \
|
|
'(--help -h)'{--help,-h}'[display help]' \
|
|
'(-)::args:->session-or-command' && ret=0
|
|
|
|
case "$state" in
|
|
(mode)
|
|
_describe -t mode 'redraw mode' mode_values && ret=0
|
|
;;
|
|
(session-or-command)
|
|
_describe -t 'session' 'sessions' existing_sessions && ret=0
|
|
_path_commands && ret=0
|
|
;;
|
|
esac
|
|
|
|
return $ret
|
|
|