ohmyzsh/plugins/pod/_pod
2015-06-10 14:36:52 +02:00

612 lines
15 KiB
Text

#compdef pod
#autoload
# -----------------------------------------------------------------------------
# FILE: _pod
# DESCRIPTION: Cocoapods (0.33.0) autocomplete plugin for Oh-My-Zsh
# http://cocoapods.org
# AUTHOR: Alexandre Joly (alexandre.joly@mekanics.ch)
# GITHUB: https://github.com/mekanics
# TWITTER: @jolyAlexandre
# VERSION: 0.0.4
# -----------------------------------------------------------------------------
local -a _1st_arguments
_1st_arguments=(
'help:Show help for the given command.'
'init:Generate a Podfile for the current directory.'
'install:Install project dependencies'
'ipc:Inter-process communication'
'lib:Develop pods'
'list:List pods'
'outdated:Show outdated project dependencies'
'plugins:Show available CocoaPods plugins'
'push:Temporary alias for the `pod repo push` command'
'repo:Manage spec-repositories'
'search:Searches for pods'
'setup:Setup the CocoaPods environment'
'spec:Manage pod specs'
'trunk:Interact with trunk.cocoapods.org'
'try:Try a Pod!'
'update:Update outdated project dependencies'
)
local -a _repo_arguments
_repo_arguments=(
'add:Add a spec repo'
'lint:Validates all specs in a repo'
'push:Push new specifications to a spec-repo'
'remove:Remove a spec repo.'
'update:Update a spec repo'
)
local -a _spec_arguments
_spec_arguments=(
'cat:Prints a spec file'
'create:Create spec file stub'
'edit:Edit a spec file'
'lint:Validates a spec file'
'which:Prints the path of the given spec'
)
local -a _ipc_arguments
_ipc_arguments=(
'list:Lists the specifications know to CocoaPods'
'podfile:Converts a Podfile to YAML'
'repl:The repl listens to commands on standard input'
'spec:Converts a podspec to JSON'
'update-search-index:Updates the search index'
)
local -a _lib_arguments
_lib_arguments=(
'create:Creates a new Pod'
'lint:Validates a Pod'
)
local -a _plugins_arguments
_plugins_arguments=(
'create:Creates a new plugin'
'list:List all known plugins'
'search:Search for known plugins'
)
local -a _list_arguments
_list_arguments=(
'new:Lists pods introduced in the master spec-repo since the last check'
)
local -a _trunk_arguments
_trunk_arguments=(
'add-owner:Add an owner to a pod'
'me:Display information about your sessions'
'push:Publish a podspec'
'register:Manage sessions'
)
local -a _trunk_me_arguments
_trunk_me_arguments=(
'clean-sessions:Remove sessions'
)
local -a _inherited_options
_inherited_options=(
'(--silent)--silent[Show nothing]' \
'(--verbose)--verbose[Show more debugging information]' \
'(--no-ansi)--no-ansi[Show output without ANSI codes]' \
'(--help)--help[Show help banner of specified command]'
)
local -a _root_options
_root_options=(
'(--version)--version[Show the version of CocoaPods]' \
'(--completion-script)--completion-script[Print the auto-completion script]'
)
local -a _install_options
_install_options=(
'(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn` intact after downloading]' \
'(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \
'(--no-repo-update)--no-repo-update[Skip running `pod repo update` before install]'
)
local -a _lib_lint_options
_lib_lint_options=(
'(--quick)--quick[Lint skips checks that would require to download and build the spec]' \
'(--only-errors)--only-errors[Lint validates even if warnings are present]' \
'(--subspec=NAME)--subspec=[Lint validates only the given subspec]' \
'(--no-subspecs)--no-subspecs[Lint skips validation of subspecs]' \
'(--no-clean)--no-clean[Lint leaves the build directory intact for inspection]'
)
local -a _update_options
_update_options=(
'(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn intact after downloading]' \
'(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \
'(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]'
)
local -a _outdated_options
_outdated_options=(
'(--no-repo-update)--no-repo-update[Skip running `pod repo update` before install]'
)
local -a _search_options
_search_options=(
'(--full)--full[Search by name, summary, and description]' \
'(--stats)--stats[Show additional stats (like GitHub watchers and forks)]' \
'(--ios)--ios[Restricts the search to Pods supported on iOS]' \
'(--osx)--osx[Restricts the search to Pods supported on OS X]' \
'(--web)--web[Searches on cocoapods.org]'
)
local -a _list_options
_list_options=(
'(--update)--update[Run `pod repo update` before listing]'
)
local -a _plugins_search_options
_plugins_search_options=(
'(--full)--full[Search by name, author, and description]'
)
local -a _repo_push_options
_repo_push_options=(
'(--allow-warnings)--allow-warnings[Allows pushing even if there are warnings]' \
'(--local-only)--local-only[Does not perform the step of pushing REPO to its remote]' \
'*:script or directory:_files'
)
local -a _repo_add_options
_repo_add_options=(
'(--shallow)--shallow[Create a shallow clone (fast clone, but no push capabilities)]'
)
local -a _repo_lint_options
_repo_lint_options=(
'(--only-errors)--only-errors[Lint presents only the errors]'
)
local -a _setup_options
_setup_options=(
'(--no-shallow)--no-shallow[Clone full history so push will work]'
'(--push)--push[Use this option to enable push access once granted]'
)
local -a _spec_lint_options
_spec_lint_options=(
'(--quick)--quick[Lint skips checks that would require to download and build the spec]' \
'(--only-errors)--only-errors[Lint validates even if warnings are present]' \
'(--subspec=NAME)--subspec=[Lint validates only the given subspec]' \
'(--no-subspecs)--no-subspecs[Lint skips validation of subspecs]' \
'(--no-clean)--no-clean[Lint leaves the build directory intact for inspection]' \
'*:script or directory:_files'
)
local -a _spec_cat_options
_spec_cat_options=(
'(--show-all)--show-all[Pick from all versions of the given podspec]'
)
local -a _spec_which_options
_spec_which_options=(
'(--show-all)--show-all[Print all versions of the given podspec]'
)
local -a _spec_edit_options
_spec_edit_options=(
'(--show-all)--show-all[Pick which spec to edit from all available versions of the given podspec]'
)
local -a _trunk_register_options
_trunk_register_options=(
'(--description=DESCRIPTION)--description=[An arbitrary description to easily identify your session later on.]'
)
__first_command_list ()
{
local expl
declare -a tasks
tasks=(install ipc list outdated podfile-info push repo search setup spec update)
_wanted tasks expl 'help' compadd $tasks
}
__repo_list() {
_wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods/repos 2>/dev/null | sed -e 's/ /\\ /g')
}
__pod-repo() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod repo" _repo_arguments
return
;;
(options)
case $line[1] in
(lint)
_arguments \
$_inherited_options \
$_repo_lint_options \
':feature:__repo_list'
;;
(update)
_arguments \
$_inherited_options \
':feature:__repo_list'
;;
(push)
_arguments \
$_inherited_options \
$_repo_push_options \
':feature:__repo_list'
;;
(add)
_arguments \
$_inherited_options \
$_repo_add_options
(remove)
_arguments \
$_inherited_options \
':feature:__repo_list'
;;
esac
;;
esac
}
__pod-spec() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod spec" _spec_arguments
return
;;
(options)
case $line[1] in
(create)
_arguments \
$_inherited_options
;;
(lint)
_arguments \
$_inherited_options \
$_spec_lint_options
;;
(cat)
_arguments \
$_inherited_options \
$_spec_cat_options
;;
(which)
_arguments \
$_inherited_options \
$_spec_which_options
;;
(edit)
_arguments \
$_inherited_options \
$_spec_edit_options
;;
esac
return
;;
esac
}
__pod-ipc() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod ipc" _ipc_arguments
return
;;
(options)
_arguments -C \
$_inherited_options
return
;;
esac
}
__pod-lib() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod lib" _lib_arguments
return
;;
(options)
case $line[1] in
(create)
_arguments \
$_inherited_options
;;
(lint)
_arguments \
$_inherited_options \
$_lib_lint_options
;;
esac
return
;;
esac
}
__pod-plugins() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod plugins" _plugins_arguments
return
;;
(options)
case $line[1] in
(create)
_arguments \
$_inherited_options
;;
(list)
_arguments \
$_inherited_options
;;
(search)
_arguments \
$_inherited_options \
$_plugins_search_options
;;
esac
return
;;
esac
}
__pod-trunk() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod trunk" _trunk_arguments
return
;;
(options)
case $line[1] in
(add-owner)
_arguments \
$_inherited_options
;;
(me)
__pod-trunk-me
;;
(push)
_arguments \
$_inherited_options
;;
(register)
_arguments \
$_inherited_options \
$_trunk_register_options
;;
esac
return
;;
esac
}
__pod-trunk-me() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod trunk me" _trunk_me_arguments
return
;;
(options)
case $line[1] in
(clean-sessions)
_arguments \
$_inherited_options
;;
esac
return
;;
esac
}
__pod-list() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
$_list_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod list" _list_arguments
return
;;
(options)
_arguments -C \
$_inherited_options \
$_list_options
return
;;
esac
}
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
$_inherited_options \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "pod" _1st_arguments
_arguments \
$_inherited_options \
$_root_options
return
;;
(options)
case $line[1] in
(help)
_arguments \
$_inherited_options \
':help:__first_command_list'
;;
(init)
_arguments \
$_inherited_options
;;
(push)
_arguments \
$_inherited_options \
$_repo_push_options \
':repo:__repo_list'
;;
(repo)
__pod-repo
;;
(spec)
__pod-spec
;;
(ipc)
__pod-ipc
;;
(lib)
__pod-lib
;;
(list)
__pod-list
;;
(install)
_arguments \
$_inherited_options \
$_install_options
;;
(update)
_arguments \
$_inherited_options \
$_update_options
;;
(outdated)
_arguments \
$_inherited_options \
$_outdated_options
;;
(plugins)
__pod-plugins
;;
(trunk)
__pod-trunk
;;
(try)
_arguments \
$_inherited_options
;;
(search)
_arguments \
$_inherited_options \
$_search_options
;;
(setup)
_arguments \
$_inherited_options \
$_setup_options
;;
esac
;;
esac