update 'lock' command completion

This commit is contained in:
Shohei YOSHIDA 2026-06-24 16:28:28 +09:00
parent 7d74814449
commit 9674907aea
No known key found for this signature in database
GPG Key ID: C9A1BB11BB940CF2
1 changed files with 69 additions and 15 deletions

View File

@ -453,12 +453,27 @@ _conan_list() {
(( $+functions[_conan_lock] )) || (( $+functions[_conan_lock] )) ||
_conan_lock() { _conan_lock() {
local curcontext=$curcontext state state_descr line ret=1
typeset -A opt_args
_arguments -C \ _arguments -C \
'(- : *)'{-h,--help}'[display help information]' \ '(- : *)'{-h,--help}'[display help information]' \
'1: :_conan_lock_commands' \ '1:subcommand:->subcommand' \
'*:: :->args' '*:: :->args'
case $state in case $state in
(subcommand)
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'
'remove:remove requires, build-requires or python-requires from an existing lockfile'
'update:update requires'
'upgrade:upgrade requires, build-requires or python-requires from an exiting lockfile'
'upgrade-config:upgrade config requires in a lockfile'
)
_describe -t 'commands' "command" commands && ret=0
;;
(args) (args)
local -a opts=($_conan_common_options) local -a opts=($_conan_common_options)
case $words[1] in case $words[1] in
@ -474,34 +489,73 @@ _conan_lock() {
(create) (create)
opts+=( opts+=(
\*{-b,--build}'[optional, specify which packages to build from source]:build' \*{-b,--build}'[optional, specify which packages to build from source]:build'
'--requires[directly provide requires instead of a conanfile]:requires'
'--tool-requires[directly provide tool-requires instead of a conanfile]:tool-requires'
'--build-require[whether the provided reference is a build-require]'
$_conan_remote_options[@] $_conan_remote_options[@]
'(-u --update)'{-u,--update}'[will check the remote and in case a newer version]'
$conan_profile_options[@] $conan_profile_options[@]
$conan_reference_options[@]
$_conan_lockfile_options[@] $_conan_lockfile_options[@]
'1: :_files' '1: :_files'
) )
;; ;;
(merge) (merge)
opts+=( opts+=(
'--lockfile[file name of the input lockfile]:filename:_files'
'--lockfile-out[file name of the created lockfile]:filename:_files'
)
;;
(remove)
opts+=(
'*--build-requires[remove build-requires from lockfile]:build_requires'
'*--python-requires[remove python-requires from lockfile]'
'*--config-requires[remove config-requires from lockfile]'
'--lockfile-out[file name of the created lockfile]:filename:_files' '--lockfile-out[file name of the created lockfile]:filename:_files'
'--lockfile[file name of the input lockfile]:filename:_files' '--lockfile[file name of the input lockfile]:filename:_files'
) )
;; ;;
(update)
opts+=(
'*--requires[update references to lockfile]:requires'
'*--build-requires[update build-requires from lockfile]:build_requires'
'*--python-requires[update python-requires from lockfile]'
'*--config-requires[update config-requires from lockfile]'
'--lockfile-out[file name of the created lockfile]:filename:_files'
'--lockfile[file name of the input lockfile]:filename:_files'
)
;;
(upgrade)
opts+=(
'--requires[directly provide requires instead of a conanfile]:requires'
'--tool-requires[directly provide tool-requires instead of a conanfile]:tool-requires'
\*{-ur,--update-requires}'[update requires from lockfile]:update_requires'
\*{-ubr,--update-build-requires}'[update build-requires from lockfile]:update_build_requires'
\*{-upr,--update-python-requires}'[update python-requires from lockfile]:update_python_requires'
'*--build-requires[update build-requires from lockfile]:build_requires'
$_conan_remote_options[@]
$conan_profile_options[@]
$conan_reference_options[@]
$_conan_lockfile_options[@]
)
;;
(upgrade-config)
opts+=(
'--requires[directly provide requires instead of a conanfile]:requires'
'--tool-requires[directly provide tool-requires instead of a conanfile]:tool-requires'
'*--update-config-requires[update config-requires from lockfile]:update_config_requires'
$_conan_remote_options[@]
$conan_profile_options[@]
$conan_reference_options[@]
$_conan_lockfile_options[@]
)
;;
esac esac
_arguments "$opts[@]" _arguments "$opts[@]" && ret=1
;; ;;
esac esac
}
(( $+functions[_conan_lock_commands] )) || return ret
_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] )) || (( $+functions[_conan_profile] )) ||