aboutsummaryrefslogtreecommitdiffstats
path: root/src/_fab
blob: d53971b6133521b2db787b3d94d8621a154c8659 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#compdef fab
# ------------------------------------------------------------------------------
# Copyright (c) 2015 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
#     * Neither the name of the zsh-users nor the
#       names of its contributors may be used to endorse or promote products
#       derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
#  Completion script for Fabric v3.2.2 (https://www.fabfile.org/)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
#  * Valerii Hiora (https://github.com/vhbit)
#
# ------------------------------------------------------------------------------

_fab_tasks() {
  local -a tasks=(${(f)"$(fab --list 2>/dev/null| awk '/^ /{first=$1;$1="";print first ":" substr($0, 2) }')"})
  if (( $#tasks > 0)); then
    _describe -t 'task' tasks tasks
  fi
}

_arguments \
  '--complete[Print tab-completion candidates for given parse remainder]' \
  "--hide=[Set default value of run()'s 'hide' kwarg]:str" \
  '(- *)--list-agent-keys[Display ssh-agent key list, and exit]' \
  '--no-dedupe[Disable task deduplication]' \
  '--print-completion-script=[Print the tab-completion script for your preferred shell]:shell:(bash zsh fish)' \
  '--prompt-for-login-password[Request an upfront SSH-auth password prompt]' \
  '--prompt-for-passphrase[Request an upfront SSH key passphrase prompt]' \
  '--prompt-for-sudo-password[Prompt user at start of session for the sudo.password config value]' \
  '--write-pyc[Enable creation of .pyc files]' \
  '(-c --collection)'{-c,--collection=}'[Specify collection name to load]:name' \
  '(-d --debug)'{-d,--debug}'[Enable debug output]' \
  '(-D --list-depth)'{-D,--list-depth=}'[When listing tasks, only show the first INT levels]:level' \
  '(-e --echo)'{-e,--echo}'[Echo executed commands before running]' \
  '(-f --config)'{-f,--config=}'[Runtime configuration file to use]:file:_files' \
  '(-F --list-format)'{-F,--list-format=}'[Change the display format used when listing tasks]:format:(flat nested json)' \
  '(- *)'{-h,--help=-}'[Show core or per-task help and exit]::task:_fab_tasks' \
  '(-H --hosts)'{-H,--hosts=}'[Comma-separated host name(s) to execute tasks against]:host' \
  \*{-i,--identity=}'[Path to runtime SSH identity (key) file]:file:_files' \
  '(-l --list)'{-l,--list=-}'[List available tasks, optionally limited to a namespace]::namespace' \
  '(-p --pty)'{-p,--pty}'[Use a pty when executing shell commands]' \
  '(-r --search-root)'{-r,--search-root=}'[Change root directory used for finding task modules]:dir:_files -/' \
  '(-R --dry)'{-R,--dry}'[Echo commands instead of running]' \
  '(-S --ssh-config)'{-S,--ssh-config=}'[Path to runtime SSH config file]:file:_files' \
  '(-t --connect-timeout)'{-t,--connect-timeout=}'[Specifies default connection timeout, in seconds]:seconds' \
  '(-T --command-timeout)'{-T,--command-timeout=}'[Specify a global command execution timeout, in seconds]:seconds' \
  '(- *)'{-V,--version}'[Show version and exit]' \
  '(-w --warn-only)'{-w,--warn-only}'[Warn, instead of failing, when shell commands fail]' \
  '*::task:_fab_tasks'

# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et