podSpec top-level property

FigSpec podSpec
final

Completion spec for pod CLI

Implementation

final FigSpec podSpec = FigSpec(
    name: 'pod',
    description: 'CocoaPods, the Cocoa library package manager',
    subcommands: [
      Subcommand(
          description: 'Deintegrate CocoaPods from your project',
          name: 'deintegrate',
          options: [
            Option(
                name: '--project-directory',
                description: 'The path to the root of the project directory',
                args: [Arg(name: '/project/dir/', template: 'folders')]),
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          args: [
            Arg(name: 'XCODE_PROJECT', isOptional: true)
          ]),
      Subcommand(
          description: 'Manipulate the CocoaPods cache',
          name: 'cache',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          subcommands: [
            Subcommand(
                description: 'Remove the cache for pods',
                name: 'clean',
                options: [
                  Option(
                      name: '--all',
                      description: 'Remove all the cached pods without asking'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME', isOptional: true)
                ]),
            Subcommand(
                description: 'List the paths of pod caches for each known pod',
                name: 'list',
                options: [
                  Option(
                      name: '--short',
                      description:
                          'Only print the path relative to the cache root'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME', isOptional: true)
                ])
          ]),
      Subcommand(description: 'List pods', name: 'list', options: [
        Option(
            name: '--update',
            description: 'Run `pod repo update` before listing'),
        Option(
            name: '--stats',
            description:
                'Show additional stats (like GitHub watchers and forks)'),
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ]),
      Subcommand(
          description: 'Setup the CocoaPods environment',
          name: 'setup',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ]),
      Subcommand(description: 'Manage pod specs', name: 'spec', options: [
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ], subcommands: [
        Subcommand(description: 'Edit a spec file', name: 'edit', options: [
          Option(
              name: '--regex',
              description: 'Interpret the `QUERY` as a regular expression'),
          Option(
              name: '--show-all',
              description: 'Pick from all versions of the given podspec'),
          Option(
              name: '--allow-root',
              description: 'Allows CocoaPods to run as root')
        ], args: [
          Arg(name: 'QUERY', isOptional: true)
        ]),
        Subcommand(
            description: 'Create spec file stub',
            name: 'create',
            options: [
              Option(
                  name: '--allow-root',
                  description: 'Allows CocoaPods to run as root')
            ],
            args: [
              Arg(name: 'NAME|https://github.com/USER/REPO', isOptional: true)
            ]),
        Subcommand(description: 'Prints a spec file', name: 'cat', options: [
          Option(
              name: '--regex',
              description: 'Interpret the `QUERY` as a regular expression'),
          Option(
              name: '--show-all',
              description: 'Pick from all versions of the given podspec'),
          Option(
              name: '--allow-root',
              description: 'Allows CocoaPods to run as root')
        ], args: [
          Arg(name: 'QUERY', isOptional: true)
        ]),
        Subcommand(
            description: 'Prints the path of the given spec',
            name: 'which',
            options: [
              Option(
                  name: '--regex',
                  description: 'Interpret the `QUERY` as a regular expression'),
              Option(
                  name: '--show-all',
                  description: 'Print all versions of the given podspec'),
              Option(
                  name: '--allow-root',
                  description: 'Allows CocoaPods to run as root')
            ],
            args: [
              Arg(name: 'QUERY', isOptional: true)
            ]),
        Subcommand(
            description: 'Validates a spec file',
            name: 'lint',
            options: [
              Option(
                  name: '--quick',
                  description:
                      'Lint skips checks that would require to download and build the spec'),
              Option(
                  name: '--allow-warnings',
                  description: 'Lint validates even if warnings are present'),
              Option(
                  name: '--subspec',
                  description: 'Lint validates only the given subspec',
                  args: [Arg(name: 'NAME')]),
              Option(
                  name: '--no-subspecs',
                  description: 'Lint skips validation of subspecs'),
              Option(
                  name: '--no-clean',
                  description:
                      'Lint leaves the build directory intact for inspection'),
              Option(
                  name: '--fail-fast',
                  description:
                      'Lint stops on the first failing platform or subspec'),
              Option(
                  name: '--use-libraries',
                  description:
                      'Lint uses static libraries to install the spec'),
              Option(
                  name: '--use-modular-headers',
                  description: 'Lint uses modular headers during installation'),
              Option(
                  name: '--use-static-frameworks',
                  description:
                      'Lint uses static frameworks during installation'),
              Option(
                  name: '--sources',
                  description:
                      'The sources from which to pull dependent pods (defaults to https://cdn.cocoapods.org/). Multiple sources must be comma-delimited',
                  args: [
                    Arg(name: 'source', suggestions: [
                      FigSuggestion(
                          name: 'https://cdn.cocoapods.org/', icon: '🌐')
                    ])
                  ]),
              Option(
                  name: '--platforms',
                  description:
                      'Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited',
                  args: [
                    Arg(name: 'platform', suggestions: [
                      FigSuggestion(name: 'ios', icon: '📱'),
                      FigSuggestion(name: 'macos', icon: '💻'),
                      FigSuggestion(name: 'ios,macos', icon: '💻')
                    ])
                  ]),
              Option(
                  name: '--private',
                  description:
                      'Lint skips checks that apply only to public specs'),
              Option(
                  name: '--swift-version',
                  description:
                      'The `SWIFT_VERSION` that should be used to lint the spec. This takes precedence over the Swift versions specified by the spec or a `.swift-version` file',
                  args: [Arg(name: 'VERSION')]),
              Option(
                  name: '--skip-import-validation',
                  description:
                      'Lint skips validating that the pod can be imported'),
              Option(
                  name: '--skip-tests',
                  description:
                      'Lint skips building and running tests during validation'),
              Option(
                  name: '--test-specs',
                  description: 'List of test specs to run',
                  args: [Arg(name: 'test-spec')]),
              Option(
                  name: '--analyze',
                  description: 'Validate with the Xcode Static Analysis tool'),
              Option(
                  name: '--configuration',
                  description:
                      'Build using the given configuration (defaults to Release)',
                  args: [Arg(name: 'CONFIGURATION')]),
              Option(
                  name: '--allow-root',
                  description: 'Allows CocoaPods to run as root')
            ],
            args: [
              Arg(
                  name: 'NAME.podspec|DIRECTORY|http://PATH/NAME.podspec',
                  isOptional: true,
                  generators: podSpecAndFoldersGenerator)
            ])
      ]),
      Subcommand(
          description:
              'Install project dependencies according to versions from a Podfile.lock',
          name: 'install',
          options: [
            Option(
                name: '--repo-update',
                description: 'Force running `pod repo update` before install'),
            Option(
                name: '--deployment',
                description:
                    'Disallow any changes to the Podfile or the Podfile.lock during installation'),
            Option(
                name: '--clean-install',
                description:
                    'Ignore the contents of the project cache and force a full pod installation. This only applies to projects that have enabled incremental installation'),
            Option(
                name: '--project-directory',
                description: 'The path to the root of the project directory',
                args: [Arg(name: '/project/dir/', template: 'folders')]),
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ]),
      Subcommand(description: 'Display pod environment', name: 'env', options: [
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ]),
      Subcommand(
          description: 'Show outdated project dependencies',
          name: 'outdated',
          options: [
            Option(
                name: '--project-directory',
                description: 'The path to the root of the project directory',
                args: [Arg(name: '/project/dir/', template: 'folders')]),
            Option(
                name: '--no-repo-update',
                description: 'Skip running `pod repo update` before install'),
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ]),
      Subcommand(
          description: 'Generate a Podfile for the current directory',
          name: 'init',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          args: [
            Arg(name: 'XCODEPROJ')
          ]),
      Subcommand(
          description: 'Inter-process communication',
          name: 'ipc',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          subcommands: [
            Subcommand(
                description: 'Lists the specifications known to CocoaPods',
                name: 'list',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ]),
            Subcommand(
                description: 'Updates the search index',
                name: 'update-search-index',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ]),
            Subcommand(
                description: 'Converts a Podfile to JSON',
                name: 'podfile-json',
                options: [
                  Option(
                      name: '--project-directory',
                      description:
                          'The path to the root of the project directory',
                      args: [Arg(name: '/project/dir/', template: 'folders')]),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'PATH', template: 'filepaths')
                ]),
            Subcommand(
                description: 'Converts a podspec to JSON',
                name: 'spec',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'PATH')
                ]),
            Subcommand(
                description: 'Converts a Podfile to YAML',
                name: 'podfile',
                options: [
                  Option(
                      name: '--project-directory',
                      description:
                          'The path to the root of the project directory',
                      args: [Arg(name: '/project/dir/', template: 'folders')]),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'PATH', template: 'filepaths')
                ]),
            Subcommand(
                description: 'The repl listens to commands on standard input',
                name: 'repl',
                options: [
                  Option(
                      name: '--project-directory',
                      description:
                          'The path to the root of the project directory',
                      args: [Arg(name: '/project/dir/', template: 'folders')]),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ])
          ]),
      Subcommand(
          description: 'Show available CocoaPods plugins',
          name: 'plugins',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          subcommands: [
            Subcommand(
                description: 'Search for known plugins',
                name: 'search',
                options: [
                  Option(
                      name: '--full',
                      description: 'Search by name  author, and description'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'QUERY')
                ]),
            Subcommand(
                description: 'List plugins installed on your machine',
                name: 'installed',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ]),
            Subcommand(
                description: 'Creates a new plugin',
                name: 'create',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME'),
                  Arg(name: 'TEMPLATE_URL', isOptional: true)
                ]),
            Subcommand(
                description:
                    'Request to add the plugin to the official plugins list',
                name: 'publish',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ])
          ]),
      Subcommand(description: 'Develop pods', name: 'lib', options: [
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ], subcommands: [
        Subcommand(description: 'Creates a new Pod', name: 'create', options: [
          Option(
              name: '--template-url',
              description:
                  'The URL of the git repo containing a compatible template',
              args: [Arg(name: 'URL')]),
          Option(
              name: '--allow-root',
              description: 'Allows CocoaPods to run as root')
        ], args: [
          Arg(name: 'NAME')
        ]),
        Subcommand(description: 'Validates a Pod', name: 'lint', options: [
          Option(
              name: '--quick',
              description:
                  'Lint skips checks that would require to download and build the spec'),
          Option(
              name: '--allow-warnings',
              description: 'Lint validates even if warnings are present'),
          Option(
              name: '--subspec',
              description: 'Lint validates only the given subspec',
              args: [Arg(name: 'NAME')]),
          Option(
              name: '--no-subspecs',
              description: 'Lint skips validation of subspecs'),
          Option(
              name: '--no-clean',
              description:
                  'Lint leaves the build directory intact for inspection'),
          Option(
              name: '--fail-fast',
              description:
                  'Lint stops on the first failing platform or subspec'),
          Option(
              name: '--use-libraries',
              description: 'Lint uses static libraries to install the spec'),
          Option(
              name: '--use-modular-headers',
              description: 'Lint uses modular headers during installation'),
          Option(
              name: '--use-static-frameworks',
              description: 'Lint uses static frameworks during installation'),
          Option(
              name: '--sources',
              description:
                  'The sources from which to pull dependent pods (defaults to https://cdn.cocoapods.org/). Multiple,sources must be comma-delimited',
              args: [
                Arg(name: 'source', suggestions: [
                  FigSuggestion(name: 'https://cdn.cocoapods.org/', icon: '🌐')
                ])
              ]),
          Option(
              name: '--platforms',
              description:
                  'Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited',
              args: [
                Arg(name: 'platform', suggestions: [
                  FigSuggestion(name: 'ios', icon: '📱'),
                  FigSuggestion(name: 'macos', icon: '💻'),
                  FigSuggestion(name: 'ios,macos', icon: '💻')
                ])
              ]),
          Option(
              name: '--private',
              description: 'Lint skips checks that apply only to public specs'),
          Option(
              name: '--swift-version',
              description:
                  'The `SWIFT_VERSION` that should be used to lint the spec. This takes precedence over the Swift versions specified by the spec or a `.swift-version` file',
              args: [Arg(name: 'VERSION')]),
          Option(
              name: '--include-podspecs',
              description:
                  'Additional ancillary podspecs which are used for linting via :path',
              args: [
                Arg(name: 'podspec', generators: podSpecAndFoldersGenerator)
              ]),
          Option(
              name: '--external-podspecs',
              description:
                  'Additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them',
              args: [
                Arg(name: 'podspec', generators: podSpecAndFoldersGenerator)
              ]),
          Option(
              name: '--skip-import-validation',
              description:
                  'Lint skips validating that the pod can be imported'),
          Option(
              name: '--skip-tests',
              description:
                  'Lint skips building and running tests during validation'),
          Option(
              name: '--test-specs',
              description: 'List of test specs to run',
              args: [Arg(name: 'test-spec')]),
          Option(
              name: '--analyze',
              description: 'Validate with the Xcode Static Analysis tool'),
          Option(
              name: '--configuration',
              description:
                  'Build using the given configuration (defaults to Release)',
              args: [Arg(name: 'CONFIGURATION')]),
          Option(
              name: '--allow-root',
              description: 'Allows CocoaPods to run as root')
        ], args: [
          Arg(
              name: 'PODSPEC_PATHS',
              isOptional: true,
              generators: podSpecAndFoldersGenerator)
        ])
      ]),
      Subcommand(description: 'Search for pods', name: 'search', options: [
        Option(
            name: '--regex',
            description: 'Interpret the `QUERY` as a regular expression'),
        Option(name: '--simple', description: 'Search only by name'),
        Option(
            name: '--stats',
            description:
                'Show additional stats (like GitHub watchers and forks)'),
        Option(name: '--web', description: 'Searches on cocoapods.org'),
        Option(
            name: '--ios',
            description: 'Restricts the search to Pods supported on iOS'),
        Option(
            name: '--osx',
            description: 'Restricts the search to Pods supported on macOS'),
        Option(
            name: '--watchos',
            description: 'Restricts the search to Pods supported on watchOS'),
        Option(
            name: '--tvos',
            description: 'Restricts the search to Pods supported on tvOS'),
        Option(
            name: '--no-pager',
            description: 'Do not pipe search results into a pager'),
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ], args: [
        Arg(name: 'QUERY')
      ]),
      Subcommand(
          description: 'Manage spec-repositories',
          name: 'repo',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          subcommands: [
            Subcommand(
                description: 'Push new specifications to a spec-repo',
                name: 'push',
                options: [
                  Option(
                      name: '--allow-warnings',
                      description: 'Allows pushing even if there are warnings'),
                  Option(
                      name: '--use-libraries',
                      description:
                          'Linter uses static libraries to install the spec'),
                  Option(
                      name: '--use-modular-headers',
                      description:
                          'Lint uses modular headers during installation'),
                  Option(
                      name: '--sources',
                      description:
                          'The sources from which to pull dependent pods (defaults to all available repos). Multiple sources must be comma-delimited',
                      args: [
                        Arg(name: 'source', suggestions: [
                          FigSuggestion(
                              name: 'https://cdn.cocoapods.org/', icon: '🌐')
                        ])
                      ]),
                  Option(
                      name: '--local-only',
                      description:
                          'Does not perform the step of pushing REPO to its remote'),
                  Option(
                      name: '--no-private',
                      description:
                          'Lint includes checks that apply only to public repos'),
                  Option(
                      name: '--skip-import-validation',
                      description:
                          'Lint skips validating that the pod can be imported'),
                  Option(
                      name: '--skip-tests',
                      description:
                          'Lint skips building and running tests during validation'),
                  Option(
                      name: '--commit-message',
                      description:
                          'Add custom commit message. Opens default editor if no commit message is specified',
                      args: [Arg(name: 'message')]),
                  Option(
                      name: '--use-json',
                      description:
                          'Convert the podspec to JSON before pushing it to the repo'),
                  Option(
                      name: '--swift-version',
                      description:
                          'The `SWIFT_VERSION` that should be used when linting the spec. This takes precedence over the Swift versions specified by the spec or a `.swift-version` file',
                      args: [Arg(name: 'VERSION')]),
                  Option(
                      name: '--no-overwrite',
                      description:
                          'Disallow pushing that would overwrite an existing spec'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'REPO'),
                  Arg(
                      name: 'NAME.podspec',
                      isOptional: true,
                      generators: podSpecAndFoldersGenerator)
                ]),
            Subcommand(description: 'Add a spec repo', name: 'add', options: [
              Option(
                  name: '--progress',
                  description:
                      'Show the progress of cloning the spec repository'),
              Option(
                  name: '--allow-root',
                  description: 'Allows CocoaPods to run as root')
            ], args: [
              Arg(name: 'NAME'),
              Arg(name: 'URL'),
              Arg(name: 'BRANCH', isOptional: true)
            ]),
            Subcommand(
                description: 'Remove a spec repo',
                name: 'remove',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME')
                ]),
            Subcommand(
                description: 'Add a spec repo backed by a CDN',
                name: 'add-cdn',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME'),
                  Arg(name: 'URL')
                ]),
            Subcommand(
                description: 'Validates all specs in a repo list',
                name: 'lint',
                options: [
                  Option(
                      name: '--only-errors',
                      description: 'Lint presents only the errors'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME|DIRECTORY', isOptional: true)
                ]),
            Subcommand(
                description: 'Update a spec repo',
                name: 'update',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME', isOptional: true)
                ])
          ]),
      Subcommand(
          description:
              'Interact with the CocoaPods API (e.g. publishing new specs)',
          name: 'trunk',
          options: [
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          subcommands: [
            Subcommand(
                description: 'Publish a podspec',
                name: 'push',
                options: [
                  Option(
                      name: '--allow-warnings',
                      description:
                          'Allows push even if there are lint warnings'),
                  Option(
                      name: '--use-libraries',
                      description:
                          'Linter uses static libraries to install the spec'),
                  Option(
                      name: '--use-modular-headers',
                      description:
                          'Lint uses modular headers during installation'),
                  Option(
                      name: '--swift-version',
                      description:
                          'The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file',
                      args: [Arg(name: 'VERSION')]),
                  Option(
                      name: '--skip-import-validation',
                      description:
                          'Lint skips validating that the pod can be imported'),
                  Option(
                      name: '--skip-tests',
                      description:
                          'Lint skips building and running tests during validation'),
                  Option(
                      name: '--synchronous',
                      description:
                          'If validation depends on other recently pushed pods ,synchronize'),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'PATH', isOptional: true)
                ]),
            Subcommand(
                description: 'Deprecates a pod',
                name: 'deprecate',
                options: [
                  Option(
                      name: '--in-favor-of',
                      description: 'The pod to deprecate this pod in favor of',
                      args: [Arg(name: 'OTHER_NAME')]),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME')
                ]),
            Subcommand(
                description: 'Deletes a version of a pod',
                name: 'delete',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME'),
                  Arg(name: 'VERSION')
                ]),
            Subcommand(
                description: 'Add an owner to a pod',
                name: 'add-owner',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'POD'),
                  Arg(name: 'OWNER-EMAIL')
                ]),
            Subcommand(
                description: 'Remove an owner from a pod',
                name: 'remove-owner',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'POD'),
                  Arg(name: 'OWNER-EMAIL')
                ]),
            Subcommand(
                description: 'Display information about your sessions',
                name: 'me',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                subcommands: [
                  Subcommand(
                      description: 'Remove sessions',
                      name: 'clean-sessions',
                      options: [
                        Option(
                            name: '--all',
                            description:
                                'Removes all your sessions  except for the current one'),
                        Option(
                            name: '--allow-root',
                            description: 'Allows CocoaPods to run as root')
                      ])
                ]),
            Subcommand(
                description: 'Manage sessions',
                name: 'register',
                options: [
                  Option(
                      name: '--description',
                      description:
                          'An arbitrary description to easily identify your session later on',
                      args: [Arg(name: 'DESCRIPTION')]),
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'EMAIL'),
                  Arg(name: 'YOUR_NAME', isOptional: true)
                ]),
            Subcommand(
                description: 'Returns information about a Pod',
                name: 'info',
                options: [
                  Option(
                      name: '--allow-root',
                      description: 'Allows CocoaPods to run as root')
                ],
                args: [
                  Arg(name: 'NAME')
                ])
          ]),
      Subcommand(
          description:
              'Update outdated project dependencies and create new Podfile.lock',
          name: 'update',
          options: [
            Option(
                name: '--sources',
                description:
                    'The sources from which to update dependent pods. Multiple sources must be comma-delimited',
                args: [Arg(name: 'https://cdn.cocoapods.org/')]),
            Option(
                name: '--exclude-pods',
                description:
                    'Pods to exclude during update. Multiple pods must be comma-delimited',
                args: [Arg(name: 'podName')]),
            Option(
                name: '--clean-install',
                description:
                    'Ignore the contents of the project cache and force a full pod installation. This only applies to projects that have enabled incremental installation'),
            Option(
                name: '--project-directory',
                description: 'The path to the root of the project directory',
                args: [Arg(name: '/project/dir/', template: 'folders')]),
            Option(
                name: '--no-repo-update',
                description: 'Skip running `pod repo update` before install'),
            Option(
                name: '--allow-root',
                description: 'Allows CocoaPods to run as root')
          ],
          args: [
            Arg(name: 'POD_NAMES', isOptional: true)
          ]),
      Subcommand(description: 'Try a Pod!', name: 'try', options: [
        Option(name: '--podspec_name', args: [
          Arg(
              name: 'name',
              description:
                  'The name of the podspec file within the Git Repository')
        ]),
        Option(
            name: '--no-repo-update',
            description: 'Skip running `pod repo update` before install'),
        Option(
            name: '--allow-root',
            description: 'Allows CocoaPods to run as root')
      ], args: [
        Arg(name: 'NAME|URL')
      ])
    ],
    options: [
      Option(name: '--silent', description: 'Show nothing'),
      Option(name: '--verbose', description: 'Show more debugging information'),
      Option(name: '--no-ansi', description: 'Show output without ANSI codes'),
      Option(
          name: '--help', description: 'Show help banner of specified command')
    ]);