Commit cf5ca2f4 authored by Alexandre Joly's avatar Alexandre Joly
Browse files

commands and subcommands

parent c26facb5
#compdef pod #compdef pod
#autoload
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# FILE: pod.plugin.zsh # FILE: pod.plugin.zsh
# DESCRIPTION: Cocoapods autocomplete plugin for Oh-My-Zsh # DESCRIPTION: Cocoapods autocomplete plugin for Oh-My-Zsh
# http://cocoapods.org
# AUTHOR: Alexandre Joly (alexandre.joly@mekanics.ch) # AUTHOR: Alexandre Joly (alexandre.joly@mekanics.ch)
# GITHUB: https://github.com/mekanics # GITHUB: https://github.com/mekanics
# TWITTER: @jolyAlexandre
# VERSION: 0.0.1 # VERSION: 0.0.1
# LICENSE: MIT
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
_pod_all_repos() { #------------------
repos=(`ls ~/.cocoapods`) # TODO:
} # - Parameters for
# - install
# - update
# - outdated
# - search
# - list
# - push
# - podfile-info
# - setup
#------------------
local -a _1st_arguments local -a _1st_arguments
_1st_arguments=( _1st_arguments=(
...@@ -29,54 +42,158 @@ _1st_arguments=( ...@@ -29,54 +42,158 @@ _1st_arguments=(
'update:Update outdated project dependencies' 'update:Update outdated project dependencies'
) )
_arguments '*:: :->command' local -a _repo_arguments
_repo_arguments=(
if (( CURRENT == 1 )); then 'add:Add a spec repo'
_describe -t commands "pod command" _1st_arguments 'lint:Validates all specs in a repo'
return 'update:Update a spec repo'
fi )
local -a _command_args local -a _spec_arguments
case "$words[1]" in _spec_arguments=(
install) 'cat:Prints a spec file'
_command_args=( 'create:Create spec file stub'
'(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn` intact after downloading]' \ 'edit:Edit a spec file'
'(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \ 'lint:Validates a spec file'
'(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]' 'which:Prints the path of the given spec'
) )
;;
update) local -a _ipc_arguments
_command_args=( _ipc_arguments=(
'(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn intact after downloading]' \ 'list:Lists the specifications know to CocoaPods'
'(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \ 'podfile:Converts a Podfile to YAML'
'(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]' 'repl:The repl listens to commands on standard input'
) 'spec:Converts a podspec to YAML'
;; 'update-search-index:Updates the search index'
outdated) )
_command_args=(
'(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]' local -a _list_arguments
) _list_arguments=(
;; 'new:Lists pods introduced in the master spec-repo since the last check'
search) )
_command_args=(
'(--full)--full[Search by name, summary, and description]' \ __first_command_list ()
'(--stats)--stats[Show additional stats (like GitHub watchers and forks)]' \ {
'(--ios)--ios[Restricts the search to Pods supported on iOS]' \ local expl
'(--osx)--osx[Restricts the search to Pods supported on OS X]' declare -a tasks
)
;; tasks=(install ipc lib list outdated podfile-info push repo search setup spec update)
update)
_command_args=( _wanted tasks expl 'help' compadd $tasks
'(--update)--update[Run `pod repo update before listing]' }
)
;; __repo_list() {
esac _wanted application expl 'command' compadd $(command ls -1 ~/.cocoapods 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 "gem subcommand" _repo_arguments
return
;;
(options)
case $line[1] in
(update|lint)
_arguments ':feature:__repo_list'
;;
esac
;;
esac
}
__pod-spec() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments \ _arguments -C \
$_command_args \ ':command:->command' \
'(--silent)--silent[Show nothing]' \ '*::options:->options'
'(--version)--version[Show the version of CocoaPods]' \
'(--no-color)--no-color[Show output without color]' \ case $state in
'(--verbose)--verbose[Show more debugging information]' \ (command)
'(--help)--help[Show help banner of specified command]' \ _describe -t commands "gem subcommand" _spec_arguments
&& return 0 return
\ No newline at end of file ;;
(options)
#todo
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 "gem subcommand" _ipc_arguments
return
;;
(options)
#todo
return
;;
esac
}
local expl
#local -a boxes installed_boxes
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "gem subcommand" _1st_arguments
return
;;
(options)
case $line[1] in
(help)
_arguments ':feature:__first_command_list'
;;
(repo)
__pod-repo
;;
(spec)
__pod-spec
;;
(ipc)
__pod-ipc
;;
(list)
__pod-list
;;
(install|lib|outdated|podfile-info|push|search|setup|update)
#_arguments ':feature:__repo_list'
esac
;;
esac
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment