767 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			767 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #compdef conan
 | |
| # ------------------------------------------------------------------------------
 | |
| # Copyright (c) 2010-2017 Github zsh-users - https://github.com/zsh-users
 | |
| # All rights reserved.
 | |
| #
 | |
| # Redistribution and use in source and binary forms, with or without
 | |
| # modification, are permitted provided that the following conditions are met:
 | |
| #     * Redistributions of source code must retain the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer.
 | |
| #     * Redistributions in binary form must reproduce the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer in the
 | |
| #       documentation and/or other materials provided with the distribution.
 | |
| #     * Neither the name of the zsh-users nor the
 | |
| #       names of its contributors may be used to endorse or promote products
 | |
| #       derived from this software without specific prior written permission.
 | |
| #
 | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | |
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | |
| # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
 | |
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
| # ------------------------------------------------------------------------------
 | |
| # Description
 | |
| # -----------
 | |
| #
 | |
| #  Completion script for conan 2.0.0 (https://conan.io).
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| # Authors
 | |
| # -------
 | |
| #
 | |
| #  * Julien Nicoulaud <julien.nicoulaud@gmail.com>
 | |
| #  * Shohei Yoshida <https://github.com/syohex>
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| 
 | |
| _conan_common_options=(
 | |
|   '(- *)'{-h,--help}'[show help message and exit]'
 | |
|   '-v[verbose output]'
 | |
|   '-vquiet[verbose level quiet]'
 | |
|   '-verror[verbose level error]'
 | |
|   '-vwarning[verbose level warning]'
 | |
|   '-vnotice[verbose level notice]'
 | |
|   '-vstatus[verbose level status]'
 | |
|   '-vverbose[verbose level verbose]'
 | |
|   '-vv[more verbose output]'
 | |
|   '-vdebug[verbose level debug]'
 | |
|   '-vvv[more and more verbose output]'
 | |
|   '-vtrace[verbose level trace]'
 | |
|   '--logger[show the output with log format, with time, type and message]'
 | |
| )
 | |
| 
 | |
| _conan_package_options=(
 | |
|   '--name[Provide a package name if not specified in conanfile]:name'
 | |
|   '--version[Provide a package version if not specified in conanfile]:version'
 | |
|   '--user[Provide a user]:user'
 | |
|   '--channel[Provide a channel]:channel'
 | |
|   '--requires[directly provide requires instead of a conan file]:requires'
 | |
|   '--tool-requires[directly provide tool-requires instead of a conanfile]:tool_requires'
 | |
| )
 | |
| 
 | |
| _conan_define_options=(
 | |
|   \*{-o,--options,'-o\:h','--options\:host'}'[define options of host machine]:option'
 | |
|   \*{'-o\:b','--options\:build'}'[define options of build machine]:option'
 | |
| )
 | |
| 
 | |
| _conan_profile_options=(
 | |
|   '(-pr --profile -pr\:h --profile\:host)'{-pr,--profile,-pr:h,--profile:host}'[apply the specified profile to the host machine]: :_conan_profiles'
 | |
|   '(-pr\:b --profile\:build)'{-pr:b,--profile:build}'[apply the specified profile to the build machine]: :_conan_profiles'
 | |
| )
 | |
| 
 | |
| _conan_setting_options=(
 | |
|   \*{-s,--settings,'-s\:h','--settings\:host'}'[overwrite the defaults of host machine to build]:setting'
 | |
|   \*{'-s\:b','--settings\:build'}'[overwrite the defaults of build machine to build]:setting'
 | |
| )
 | |
| 
 | |
| _conan_configuration_options=(
 | |
|   \*{-c,--conf,'-c\:h','--conf\:host'}'[overwrite the defaults of host machine to configure]:config'
 | |
|   \*{'-c\:b','--conf\:build'}'[overwrite the defaults of build machine to configure]:config'
 | |
| )
 | |
| 
 | |
| _conan_lockfile_options=(
 | |
|   '(-l --lockfile)'{-l,--lockfile}'[path to a lockfile]: :_files'
 | |
|   '--lockfile-partial[do not raise an error if some dependency is not found in lockfile]'
 | |
|   '--lockfile-out[filename of the updated lockfile]: :_files'
 | |
|   '--lockfile-packages[lock package-id and package-revision information]'
 | |
|   '--lockfile-clean[remove unused entries from the lockfile]'
 | |
| )
 | |
| 
 | |
| _conan_remote_options=(
 | |
|   '(-r --remote -nr --no-remote)'{-r,--remote}'[look in the specified remote server]:remote'
 | |
|   '(-r --remote -nr --no-remote)'{-nr,--no-remote}'[do not use remote, resolve exclusively in the cache]'
 | |
| )
 | |
| 
 | |
| _conan() {
 | |
|   local context state state_descr line
 | |
|   typeset -A opt_args
 | |
| 
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '(- : *)'{-v,--version}'[display version information]' \
 | |
|     '(-h --help)1: :_conan_commands' \
 | |
|     '(-h --help)*:: :->command_args'
 | |
| 
 | |
|   case $state in
 | |
|     command_args)
 | |
|       (( $+functions[_conan_${words[1]}] )) && _conan_${words[1]}
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_commands] )) ||
 | |
| _conan_commands() {
 | |
|   local -a commands=(
 | |
|     # consumer commands
 | |
|     'cache:perform file operations in the local cache'
 | |
|     'config:manages conan configuration information'
 | |
|     'graph:obtain information about the dependency graph without fetching binaries'
 | |
|     'inspect:inspect a conanfile.py to return its public fields'
 | |
|     'install:installs the requirements specified in a "conanfile.py" or "conanfile.txt"'
 | |
|     'list:list recipes, revisions or packages in the cache or the remotes'
 | |
|     'lock:create or manage lockfiles'
 | |
|     'profile:manage profiles'
 | |
|     'remote:manage the remote list and the users authenticated on them'
 | |
|     'remove:remove recipes or packages from local cache or a remote'
 | |
|     'search:search for package recipes in all the remotes or a remote'
 | |
| 
 | |
|     # create commands
 | |
|     'build:install dependencies and call the build() method'
 | |
|     'create:create a package'
 | |
|     'download:download(without installing) a single conan package from a remote server'
 | |
|     'editable:allow working with a package that resides in user folder'
 | |
|     'export:export a recipe to the Conan package cache'
 | |
|     'export-pkg:create a package directly from pre-compiled binaries'
 | |
|     'new:create a new example recipe and source files from a template'
 | |
|     'source:call the source() method'
 | |
|     'test:test a package from a test_package folder'
 | |
|     'upload:upload packages to a remote'
 | |
|   )
 | |
| 
 | |
|   _describe -t 'subcommands' 'subcommands' commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_cache] )) ||
 | |
| _conan_cache() {
 | |
|   local ret=1
 | |
| 
 | |
|   _arguments -C \
 | |
|    '(- *)'{-h,--help}'[show help message and exit]' \
 | |
|    '1: :(clean path)' \
 | |
|    '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local -a opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (clean)
 | |
|           opts+=(
 | |
|             '(-s --source)'{-s,--source}'[clean source folders]'
 | |
|             '(-b --build)'{-b,--build}'[clean build folders]'
 | |
|             '(-d --download)'{-d,--download}'[clean download folders]'
 | |
|             \*{-p,--package-query}'[remove only the packages matching a specific query]:query'
 | |
|             '1:pattern'
 | |
|           )
 | |
|           ;;
 | |
|         (path)
 | |
|           opts+=(
 | |
|             '--folder[path to show]::type:(export_source source build)' \
 | |
|             '1:recipe_or_package_reference:_files'
 | |
|           )
 | |
|           ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| 
 | |
|   return $ret
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_config] )) ||
 | |
| _conan_config() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_config_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local -a opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (install)
 | |
|           opts+=(
 | |
|             '--verify-ssl[Verify SSL connection when downloading file]: :(True False)'
 | |
|             '(-t --type)'{-t,--type}'[Type of remote config]: :(git dir file url)'
 | |
|             \*{-a,--args}'[String with extra arguments for "git clone"]:arg'
 | |
|             \*{-sf,--source-folder}'[Install files only from a source subfolder from specified origin]: :_files -/'
 | |
|             '(-tf --target-folder)'{-tf,--target-folder}'[Install to that path in the conan cache]: :_files -/'
 | |
|           )
 | |
|           ;;
 | |
|         (list)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|           )
 | |
|           ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_config_commands] )) ||
 | |
| _conan_config_commands() {
 | |
|   local -a commands=(
 | |
|     'home:show the Conan home folder'
 | |
|     'install:install the configuration into the Conan home folder'
 | |
|     'list:show all the Conan available configurations:'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_graph] )) ||
 | |
| _conan_graph() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_graph_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   local -a common_opts=(
 | |
|     $_conan_package_options[@]
 | |
|     \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|     $_conan_remote_options[@]
 | |
|     '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|   )
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local -a opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (build-order)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|             $common_opts[@]
 | |
|           )
 | |
|           ;;
 | |
|         (build-order-merge)
 | |
|           opts+=(
 | |
|             '--file[files to be merged]:file:_files'
 | |
|           )
 | |
|           ;;
 | |
|         (info)
 | |
|           opts+=(
 | |
|             $common_opts[@]
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(html json dot)'
 | |
|             '--check-updates[check if there are recipe updates]'
 | |
|             '*--filter[show only the specified fields]:filter'
 | |
|             '*--package-filter[print information only for packages that match the patterns]:package_filter'
 | |
|             '--deploy[deploy using the provided deployer to the output folder]:deployer'
 | |
|           )
 | |
|           ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_graph_commands] )) ||
 | |
| _conan_graph_commands() {
 | |
|   local -a commands=(
 | |
|     'build-order:compute the build order of a dependency graph'
 | |
|     'build-order-merge:merge more than 1 build-order file'
 | |
|     'info:compute the dependency graph and shows information about it'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_inspect] )) ||
 | |
| _conan_inspect() {
 | |
|   _arguments \
 | |
|     "$_conan_common_options[@]" \
 | |
|     '(-f --format)'{-f,--format}'[select the output format]:format:(json)' \
 | |
|     '*:recipe_folder:_files -/'
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_install] )) ||
 | |
| _conan_install() {
 | |
|   local -a generators=(
 | |
|     cmake cmake_multi cmake_paths cmake_find_package cmake_find_package_multi
 | |
|     msbuild visual_studio visual_studio_multi visual_studio_legacy xcode compiler_args gcc
 | |
|     boost-build b2 qbs qmake scons pkg_config virtualenv virtualenv_python virtualbuildenv
 | |
|     virtualrunenv youcompleteme txt json premake make markdown deploy
 | |
|   )
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|     \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|     $_conan_remote_options[@]
 | |
|     '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     '(-g --generator)'{-g,--generator}"[generators to use]:generator:($generators)"
 | |
|     '(-of --output)'{-of,--output-folder}'[the root output folder for generated and build files]:dir:_files -/'
 | |
|     '--deploy[deploy using the provided deployer to the output folder]:deployer'
 | |
|     '1:recipe_dir_or_conanfile:_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_list] )) ||
 | |
| _conan_list() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     '(-f --format)'{-f,--format}'[select the output format]:format:(json html)'
 | |
|     \*{-p,--package-query}'[remove only the packages matching a specific query]:query'
 | |
|     '(-r --remote)'{-r,--remote}'[remote names]:remote'
 | |
|     '(-c --cache)'{-c,--cache}'[search in the local cache]'
 | |
|     '1:recipe_or_package_reference:_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_lock] )) ||
 | |
| _conan_lock() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_lock_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local -a opts=($_conan_common_options)
 | |
|       case $words[1] in
 | |
|         (add)
 | |
|           opts+=(
 | |
|             '*--requires[add references to lockfile]:requires'
 | |
|             '*--build-requires[add build-requires to lockfile]:build_requires'
 | |
|             '*--python-requires[add python-requires to lockfile]'
 | |
|             '--lockfile-out[file name of the created lockfile]:filename:_files'
 | |
|             '--lockfile[file name of the input lockfile]:filename:_files'
 | |
|           )
 | |
|           ;;
 | |
|         (create)
 | |
|           opts+=(
 | |
|             \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|             $_conan_remote_options[@]
 | |
|             '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|             $_conan_define_options[@]
 | |
|             $_conan_profile_options[@]
 | |
|             $_conan_setting_options[@]
 | |
|             $_conan_configuration_options[@]
 | |
|             $_conan_lockfile_options[@]
 | |
|             '1: :_files'
 | |
|           )
 | |
|         ;;
 | |
|         (merge)
 | |
|           opts+=(
 | |
|             '--lockfile-out[file name of the created lockfile]:filename:_files'
 | |
|             '--lockfile[file name of the input lockfile]:filename:_files'
 | |
|           )
 | |
|         ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_lock_commands] )) ||
 | |
| _conan_lock_commands() {
 | |
|   local -a commands=(
 | |
|     'add:add requires, build-requires or python requires to an existing or new lockfile'
 | |
|     'create:create a lockfile from a conanfile or a reference'
 | |
|     'merge:merge 2 or more lockfiles'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_profile] )) ||
 | |
| _conan_profile() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_profile_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (detect)
 | |
|           opts+=(
 | |
|             '--name[profile name, "default" if not specified]::name'
 | |
|             '(-f --force)'{-f,--force}'[overwrite if exists]'
 | |
|           )
 | |
|           ;;
 | |
|         (list)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|           )
 | |
|           ;;
 | |
|         (path|show)
 | |
|           opts+=(
 | |
|             $_conan_define_options[@]
 | |
|             $_conan_profile_options[@]
 | |
|             $_conan_setting_options[@]
 | |
|             $_conan_configuration_options[@]
 | |
|           )
 | |
|           ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_profile_commands] )) ||
 | |
| _conan_profile_commands() {
 | |
|   local -a commands=(
 | |
|     'detect:generate a profile using auto-detected values'
 | |
|     'list:list all profiles in the cache'
 | |
|     'path:show profile path location'
 | |
|     'show:show aggregated profiles from the passed arguments'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_remote] )) ||
 | |
| _conan_remote() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_remote_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local -a opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (add)
 | |
|           opts+=(
 | |
|             '--insecure[allow insecure server connections when using SSL]'
 | |
|             '--index[insert the remote at a specific position in the remote list]:index'
 | |
|             '(-f --force)'{-f,--force}'[force the definition of the remote even if duplicated]'
 | |
|             '1:name'
 | |
|             '2:url'
 | |
|           )
 | |
|           ;;
 | |
|         (auth)
 | |
|           opts+=(
 | |
|             '--with-user[only try to auth in those remotes that already have a user name]'
 | |
|             '1:remote:_conan_remotes'
 | |
|           )
 | |
|           ;;
 | |
|         (list|list-users)
 | |
|           opts+=('(-f --format)'{-f,--format}'[select the output format]:format:(json)')
 | |
|           ;;
 | |
|         (login)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|             '(-p --password)'{-p,--password}'[user password]:password'
 | |
|             '1:remote:_conan_remotes'
 | |
|             '2:username:'
 | |
|           )
 | |
|           ;;
 | |
|         (logout)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|             '1:remote:_conan_remotes'
 | |
|           )
 | |
|           ;;
 | |
|         (remove)
 | |
|           opts+=('1:remote:_conan_remotes')
 | |
|           ;;
 | |
|         (rename)
 | |
|           opts+=(
 | |
|             '1:remote:_conan_remotes'
 | |
|             '2:new_name'
 | |
|           )
 | |
|           ;;
 | |
|         (set-user)
 | |
|           opts+=(
 | |
|             '(-f --format)'{-f,--format}'[select the output format]:format:(json)'
 | |
|             '1:remote:_conan_remotes'
 | |
|             '2:user_name'
 | |
|           )
 | |
|           ;;
 | |
|         (update)
 | |
|           opts+=(
 | |
|             '--url[new url for the remote]'
 | |
|             '--secure[do not allow insecure server connections when using SSL]'
 | |
|             '--insecure[allow insecure server connections when using SSL]'
 | |
|             '--index[insert the remote at a specific position in the remote list]:index'
 | |
|             '1:remote:_conan_remotes'
 | |
|           )
 | |
|           ;;
 | |
|       esac
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_remote_commands] )) ||
 | |
| _conan_remote_commands() {
 | |
|   local -a commands=(
 | |
|     'add:add a remote'
 | |
|     'auth:authenticate in the defined remotes'
 | |
|     'disable:disable all the remotes matching a pattern'
 | |
|     'enable:enable all the remotes matching a pattern'
 | |
|     'list:list current remotes'
 | |
|     'list-users:list the users logged into all the remotes'
 | |
|     'login:login into the specified remotes matching a pattern'
 | |
|     'logout:clear the existing credentials for the specified remotes matching a pattern'
 | |
|     'remove:remove a remote'
 | |
|     'rename:rename a remote'
 | |
|     'set-user:associate a username with a remote matching pattern without performing the authentication'
 | |
|     'update:update a remote'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_remove] )) ||
 | |
| _conan_remove() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     '(-c --confirm)'{-c,--confirm}'[remove without requesting a confirmation]'
 | |
|     \*{-p,--package-query}'[remove only the packages matching a specific query]:query'
 | |
|     \*{-r,--remote}'[will remove from the specified remote]:remote'
 | |
|     '*:recipe_or_package_reference:_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_search] )) ||
 | |
| _conan_search() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     \*{-r,--remote}'[will remove from the specified remote]:remote'
 | |
|     '*:recipe_reference:_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_build] )) ||
 | |
| _conan_build() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|     $_conan_remote_options[@]
 | |
|     '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     '*: :_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_create] )) ||
 | |
| _conan_create() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|     $_conan_remote_options[@]
 | |
|     '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     '--build-require[whether the provided reference is a build-require]'
 | |
|     '(-tf --test-folder)'{-tf,--test-folder}'[alternative test folder name]:folder:_files -/'
 | |
|     '*: :_files -/'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_download] )) ||
 | |
| _conan_download() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     '--only-recipe[download only the recipe, not the binary packages]'
 | |
|     \*{-p,--package-query}'[only download packages matching a specific query]:query'
 | |
|     '(-r --remote)'{-r,--remote}'[download from the specific remote]:remote:_conan_remotes'
 | |
|     '*:recipe_or_package_reference:_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_editable] )) ||
 | |
| _conan_editable() {
 | |
|   _arguments -C \
 | |
|     '(- : *)'{-h,--help}'[display help information]' \
 | |
|     '1: :_conan_editable_commands' \
 | |
|     '*:: :->args'
 | |
| 
 | |
|   case $state in
 | |
|     (args)
 | |
|       local opts=($_conan_common_options[@])
 | |
|       case $words[1] in
 | |
|         (add)
 | |
|           opts+=(
 | |
|             $_conan_package_options[@]
 | |
|             '(-of --output-folder)'{-of,--output-folder}'[the root output folder]:folder:_files -/'
 | |
|           )
 | |
|           ;;
 | |
|         (list)
 | |
|           opts+=('(-f --format)'{-f,--format}'[select the output format]:format:(json)')
 | |
|           ;;
 | |
|         (remove)
 | |
|           opts+=('(-r --refs)'{-r,--refs}'[directly provide reference patterns]:refs')
 | |
|           ;;
 | |
|       esac
 | |
| 
 | |
|       _arguments "$opts[@]"
 | |
|     ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_editable_commands] )) ||
 | |
| _conan_editable_commands() {
 | |
|   local -a commands=(
 | |
|     'add:define the given path location as the package reference'
 | |
|     'list:list all the packages in editable mode'
 | |
|     'remove:remove the editable mode for this reference'
 | |
|   )
 | |
|   _describe -t 'commands' "command" commands
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_export] )) ||
 | |
| _conan_export() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     $_conan_remote_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     '--build-require[whether the provided reference is a build-require]'
 | |
|     '*: :_files -/'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_export-pkg] )) ||
 | |
| _conan_export-pkg() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     $_conan_remote_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     '*: :_files -/'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_new] )) ||
 | |
| _conan_new() {
 | |
|   local -a templates=(
 | |
|     basic cmake_lib cmake_exe meson_lib meson_exe msbuild_lib msbuild_exe
 | |
|     bezel_lib bezel_exe autotools_lib autotools_exe
 | |
|   )
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     \*{-d,--define}'[define a template argument as key=value]:key_value'
 | |
|     '(-f --force)'{-f,--force}'[overwrite file if it already exists]'
 | |
|     "1:template:($templates)"
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_source] )) ||
 | |
| _conan_source() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     '1: :_files'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_test] )) ||
 | |
| _conan_test() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     $_conan_package_options[@]
 | |
|     \*{-b,--build}'[optional, specify which packages to build from source]:build'
 | |
|     $_conan_remote_options[@]
 | |
|     '(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
 | |
|     $_conan_define_options[@]
 | |
|     $_conan_profile_options[@]
 | |
|     $_conan_setting_options[@]
 | |
|     $_conan_configuration_options[@]
 | |
|     $_conan_lockfile_options[@]
 | |
|     '1:path:_files -/'
 | |
|     '2:reference'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_upload] )) ||
 | |
| _conan_upload() {
 | |
|   local -a opts=(
 | |
|     $_conan_common_options[@]
 | |
|     \*{-p,--package-query}'[only upload packages matching a specific query]:query'
 | |
|     '(-r --remote)'{-r,--remote}'[upload to this specific remote]:remote:_conan_remotes'
 | |
|     '--only-recipe[upload only the recipe, not the binary packages]'
 | |
|     '--force[force the upload of the artifacts]'
 | |
|     '--check[perform an integrity check before upload]'
 | |
|     '(-c --confirm)'{-c,--confirm}'[upload all matching recipes without confirmation]'
 | |
|     '1::reference'
 | |
|   )
 | |
| 
 | |
|   _arguments "$opts[@]"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_remotes] )) ||
 | |
| _conan_remotes() {
 | |
|   local -a remotes=(${(f)"$(_call_program remotes $service remote list)"})
 | |
|   _describe -t remotes 'remote' remotes "$@"
 | |
| }
 | |
| 
 | |
| (( $+functions[_conan_profiles] )) ||
 | |
| _conan_profiles() {
 | |
|   local -a profiles=(${(f)"$(_call_program profiles $service profile list 2>/dev/null)"})
 | |
|   _describe -t profiles 'profile' profiles "$@"
 | |
| }
 | |
| 
 | |
| _conan "$@"
 | |
| 
 | |
| # Local Variables:
 | |
| # mode: Shell-Script
 | |
| # sh-indentation: 2
 | |
| # indent-tabs-mode: nil
 | |
| # sh-basic-offset: 2
 | |
| # End:
 | |
| # vim: ft=zsh sw=2 ts=2 et
 |