浏览代码

supplemented with options

Alexandre Joly 11 年之前
父节点
当前提交
0892bce00b
共有 1 个文件被更改,包括 198 次插入43 次删除
  1. 198 43
      plugins/pod/_pod

+ 198 - 43
plugins/pod/_pod

@@ -12,19 +12,6 @@
 #       LICENSE:  MIT
 #       LICENSE:  MIT
 # -----------------------------------------------------------------------------
 # -----------------------------------------------------------------------------
 
 
-#------------------
-# TODO:
-#   - Parameters for
-#       - install
-#       - update
-#       - outdated
-#       - search
-#       - list
-#       - push
-#       - podfile-info
-#       - setup
-#------------------
-
 local -a _1st_arguments
 local -a _1st_arguments
 _1st_arguments=(
 _1st_arguments=(
     'help:Show help for the given command.'
     'help:Show help for the given command.'
@@ -71,6 +58,92 @@ _list_arguments=(
     'new:Lists pods introduced in the master spec-repo since the last check'
     'new:Lists pods introduced in the master spec-repo since the last check'
 )
 )
 
 
+local -a _inherited_options
+_inherited_options=(
+    '(--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]'
+)
+
+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 _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]'
+)
+
+local -a _list_options
+_list_options=(
+    '(--update)--update[Run `pod repo update` before listing]'
+)
+
+local -a _podfile_info_options
+_podfile_info_options=(
+    '(--all)--all[Show information about all Pods with dependencies that are used in a project]' \
+    '(--md)--md[Output information in Markdown format]'
+)
+
+local -a _push_options
+_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]'
+)
+
+local -a _repo_lint_options
+_repo_lint_options=(
+    '(--only-errors)--only-errors[Lint presents only the errors]'
+)
+
+local -a _setup_options
+_setup_options=(
+    '(--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]' \
+    '(--no-clean)--no-clean[Lint leaves the build directory intact for inspection]'
+)
+
+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]'
+)
+
+
 __first_command_list ()
 __first_command_list ()
 {
 {
     local expl
     local expl
@@ -82,7 +155,7 @@ __first_command_list ()
 }
 }
 
 
 __repo_list() {
 __repo_list() {
-    _wanted application expl 'command' compadd $(command ls -1 ~/.cocoapods 2>/dev/null | sed -e 's/ /\\ /g')
+    _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods 2>/dev/null | sed -e 's/ /\\ /g')
 }
 }
 
 
 __pod-repo() {
 __pod-repo() {
@@ -93,19 +166,32 @@ __pod-repo() {
         ':command:->command' \
         ':command:->command' \
         '*::options:->options'
         '*::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
-       ;;
+    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'
+                ;;
+
+                (add)
+                    _arguments \
+                        $_inherited_options
+            esac
+        ;;
     esac
     esac
 }
 }
 
 
@@ -119,12 +205,41 @@ __pod-spec() {
 
 
    case $state in
    case $state in
         (command)
         (command)
-            _describe -t commands "gem subcommand" _spec_arguments
+            _describe -t commands "pod spec" _spec_arguments
             return
             return
         ;;
         ;;
 
 
         (options)
         (options)
-            #todo
+            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
             return
         ;;
         ;;
     esac
     esac
@@ -140,12 +255,13 @@ __pod-ipc() {
 
 
    case $state in
    case $state in
         (command)
         (command)
-            _describe -t commands "gem subcommand" _ipc_arguments
+            _describe -t commands "pod ipc" _ipc_arguments
             return
             return
         ;;
         ;;
 
 
         (options)
         (options)
-            #todo
+            _arguments -C \
+                $_inherited_options
             return
             return
         ;;
         ;;
     esac
     esac
@@ -156,48 +272,53 @@ __pod-list() {
     typeset -A opt_args
     typeset -A opt_args
 
 
     _arguments -C \
     _arguments -C \
+        $_inherited_options \
+        $_list_options \
         ':command:->command' \
         ':command:->command' \
         '*::options:->options'
         '*::options:->options'
 
 
    case $state in
    case $state in
         (command)
         (command)
-            _describe -t commands "gem subcommand" _list_arguments
+            _describe -t commands "pod list" _list_arguments
             return
             return
         ;;
         ;;
 
 
         (options)
         (options)
-            #todo
+            _arguments -C \
+                $_inherited_options \
+                $_list_options
             return
             return
         ;;
         ;;
     esac
     esac
 }
 }
 
 
-
-
-local expl
-#local -a boxes installed_boxes
-
 local curcontext="$curcontext" state line
 local curcontext="$curcontext" state line
 typeset -A opt_args
 typeset -A opt_args
 
 
 _arguments -C \
 _arguments -C \
+    $_inherited_options \
     ':command:->command' \
     ':command:->command' \
     '*::options:->options'
     '*::options:->options'
 
 
 case $state in
 case $state in
   (command)
   (command)
-      _describe -t commands "gem subcommand" _1st_arguments
+      _describe -t commands "pod" _1st_arguments
       return
       return
   ;;
   ;;
 
 
   (options)
   (options)
     case $line[1] in
     case $line[1] in
         (help)
         (help)
-            _arguments ':feature:__first_command_list'
+            _arguments \
+                $_inherited_options \
+                ':help:__first_command_list'
         ;;
         ;;
 
 
         (push)
         (push)
-            _arguments ':feature:__repo_list'
+            _arguments \
+                $_inherited_options \
+                $_push_options \
+                ':repo:__repo_list'
         ;;
         ;;
 
 
         (repo)
         (repo)
@@ -216,8 +337,42 @@ case $state in
             __pod-list
             __pod-list
         ;;
         ;;
 
 
-        (install|outdated|podfile-info|search|setup|update)
-            #_arguments ':feature:__repo_list'
+        (install)
+            _arguments \
+                $_inherited_options \
+                $_install_options
+        ;;
+
+        (update)
+            _arguments \
+                $_inherited_options \
+                $_update_options
+        ;;
+
+        (outdated)
+            _arguments \
+                $_inherited_options \
+                $_outdated_options
+        ;;
+
+        (search)
+            _arguments \
+                $_inherited_options \
+                $_search_options
+        ;;
+
+        (podfile-info)
+            _arguments \
+                $_inherited_options \
+                $_podfile_info_options
+        ;;
+
+        (setup)
+            _arguments \
+                $_inherited_options \
+                $_setup_options
+        ;;
+
     esac
     esac
   ;;
   ;;
 esac
 esac