|
@@ -1,16 +1,29 @@
|
|
|
#compdef pod
|
|
|
+#autoload
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
# FILE: pod.plugin.zsh
|
|
|
# DESCRIPTION: Cocoapods 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.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
|
|
|
_1st_arguments=(
|
|
@@ -29,54 +42,158 @@ _1st_arguments=(
|
|
|
'update:Update outdated project dependencies'
|
|
|
)
|
|
|
|
|
|
-_arguments '*:: :->command'
|
|
|
-
|
|
|
-if (( CURRENT == 1 )); then
|
|
|
- _describe -t commands "pod command" _1st_arguments
|
|
|
- return
|
|
|
-fi
|
|
|
-
|
|
|
-local -a _command_args
|
|
|
-case "$words[1]" in
|
|
|
- install)
|
|
|
- _command_args=(
|
|
|
- '(--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]'
|
|
|
- )
|
|
|
- ;;
|
|
|
- update)
|
|
|
- _command_args=(
|
|
|
- '(--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]'
|
|
|
- )
|
|
|
- ;;
|
|
|
- outdated)
|
|
|
- _command_args=(
|
|
|
- '(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]'
|
|
|
- )
|
|
|
- ;;
|
|
|
- search)
|
|
|
- _command_args=(
|
|
|
- '(--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]'
|
|
|
- )
|
|
|
- ;;
|
|
|
- update)
|
|
|
- _command_args=(
|
|
|
- '(--update)--update[Run `pod repo update before listing]'
|
|
|
- )
|
|
|
- ;;
|
|
|
-esac
|
|
|
+local -a _repo_arguments
|
|
|
+_repo_arguments=(
|
|
|
+ 'add:Add a spec repo'
|
|
|
+ 'lint:Validates all specs in a 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 YAML'
|
|
|
+ 'update-search-index:Updates the search index'
|
|
|
+)
|
|
|
+
|
|
|
+local -a _list_arguments
|
|
|
+_list_arguments=(
|
|
|
+ 'new:Lists pods introduced in the master spec-repo since the last check'
|
|
|
+)
|
|
|
+
|
|
|
+__first_command_list ()
|
|
|
+{
|
|
|
+ local expl
|
|
|
+ declare -a tasks
|
|
|
+
|
|
|
+ tasks=(install ipc lib list outdated podfile-info push repo search setup spec update)
|
|
|
+
|
|
|
+ _wanted tasks expl 'help' compadd $tasks
|
|
|
+}
|
|
|
+
|
|
|
+__repo_list() {
|
|
|
+ _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 \
|
|
|
- $_command_args \
|
|
|
- '(--silent)--silent[Show nothing]' \
|
|
|
- '(--version)--version[Show the version of CocoaPods]' \
|
|
|
- '(--no-color)--no-color[Show output without color]' \
|
|
|
- '(--verbose)--verbose[Show more debugging information]' \
|
|
|
- '(--help)--help[Show help banner of specified command]' \
|
|
|
- && return 0
|
|
|
+ _arguments -C \
|
|
|
+ ':command:->command' \
|
|
|
+ '*::options:->options'
|
|
|
+
|
|
|
+ case $state in
|
|
|
+ (command)
|
|
|
+ _describe -t commands "gem subcommand" _spec_arguments
|
|
|
+ return
|
|
|
+ ;;
|
|
|
+
|
|
|
+ (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
|