From dced77d23de2a9b00faed40350d229aaaffaa4b2 Mon Sep 17 00:00:00 2001 From: Christian Heusel Date: Tue, 23 Apr 2024 14:57:55 +0200 Subject: fix(completion): fix erroneous completion variables The architecture definition of the variable was using invalid bash syntax and was previously unused: $ _binary_arch=${DEVTOOLS_VALID_ARCHES[*]:0:-1} bash: -1: substring expression < 0 We therefore fix the definition of the variable and use it for the autocompletion of the offload-build command. Furthermore fix wrongly named architecture variables that have been missed from previous refactoring. Fixes #222 Component: completion Fixes: f961e2e ("completion: implemented structured declarative bash completions") Fixes: 4173e0a ("chore: refactor variable names in valid-{tags,repos}.sh") Signed-off-by: Christian Heusel Co-authored-by: Levente Polyak --- contrib/completion/bash/devtools.in | 10 +++++++--- contrib/completion/zsh/_devtools.in | 9 ++++----- src/lib/valid-tags.sh | 7 ++++++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/contrib/completion/bash/devtools.in b/contrib/completion/bash/devtools.in index 6b88203..2d5b7bf 100644 --- a/contrib/completion/bash/devtools.in +++ b/contrib/completion/bash/devtools.in @@ -14,7 +14,6 @@ source "${_DEVTOOLS_LIBRARY_DIR}"/lib/valid-inspect.sh # shellcheck source=src/lib/valid-search.sh source "${_DEVTOOLS_LIBRARY_DIR}"/lib/valid-search.sh -_binary_arch=${DEVTOOLS_VALID_ARCHES[*]:0:-1} _colors=(never always auto) @@ -128,7 +127,7 @@ _offload_build_args=( ) _offload_build_args__repo_opts() { _devtools_completions_build_repo; } _offload_build_args_r_opts() { _offload_build_args__repo_opts; } -_offload_build_args__arch_opts() { _devtools_completions_arch; } +_offload_build_args__arch_opts() { _devtools_completions_binary_arch; } _offload_build_args_a_opts() { _offload_build_args__arch_opts; } _offload_build_args__server_opts() { :; } _offload_build_args_s_opts() { _offload_build_args__server_opts; } @@ -196,7 +195,7 @@ _pkgctl_build_args=( -h --help ) -_pkgctl_build_args__arch_opts() { _devtools_completions_arch; } +_pkgctl_build_args__arch_opts() { _devtools_completions_binary_arch; } _pkgctl_build_args__repo_opts() { _devtools_completions_repo; } _pkgctl_build_args__worker_opts() { :; } _pkgctl_build_args_w_opts() { _pkgctl_build_args__worker_opts; } @@ -244,6 +243,8 @@ _pkgctl_db_remove_args=( -a --arch -h --help ) +_pkgctl_db_remove_args__arch_opts() { _devtools_completions_binary_arch; } +_pkgctl_db_remove_args_a_opts() { _pkgctl_db_remove_args__arch_opts; } _pkgctl_db_remove_opts() { local subcommand args subcommand=(db remove) @@ -434,6 +435,9 @@ _devtools_completions_color() { _devtools_completions_arch() { mapfile -t COMPREPLY < <(compgen -W "${DEVTOOLS_VALID_ARCHES[*]}" -- "$cur") } +_devtools_completions_binary_arch() { + mapfile -t COMPREPLY < <(compgen -W "${DEVTOOLS_VALID_BINARY_ARCHES[*]}" -- "$cur") +} _devtools_completions_repo() { local optional=${1:-} mapfile -t COMPREPLY < <(compgen -W "${optional} ${DEVTOOLS_VALID_REPOS[*]}" -- "$cur") diff --git a/contrib/completion/zsh/_devtools.in b/contrib/completion/zsh/_devtools.in index 7c0fe91..65c7352 100644 --- a/contrib/completion/zsh/_devtools.in +++ b/contrib/completion/zsh/_devtools.in @@ -14,7 +14,6 @@ source "${_DEVTOOLS_LIBRARY_DIR}"/lib/valid-inspect.sh # shellcheck source=src/lib/valid-search.sh source "${_DEVTOOLS_LIBRARY_DIR}"/lib/valid-search.sh -_binary_arch=${DEVTOOLS_VALID_ARCHES[*]:0:-1} _colors=(never always auto) _archbuild_args=( @@ -41,8 +40,8 @@ _pkgctl_auth_status_args=( ) _pkgctl_build_args=( - "--arch=[Specify architectures to build for (disables auto-detection)]:arch:($_arch[*])" - "--repo=[Specify a target repository (disables auto-detection)]:repo:($DEVTOOLS_VALID_REPOS[*])" + "--arch[Specify architectures to build for (disables auto-detection)]:arch:($DEVTOOLS_VALID_BINARY_ARCHES[*])" + "--repo[Specify a target repository (disables auto-detection)]:repo:($DEVTOOLS_VALID_REPOS[*])" '(-s --staging)'{-s,--staging}'[Build against the staging counterpart of the auto-detected repo]' '(-t --testing)'{-t,--testing}'[Build against the testing counterpart of the auto-detected repo]' '(-o --offload)'{-o,--offload}'[Build on a remote server and transfer artifacts afterwards]' @@ -79,7 +78,7 @@ _pkgctl_db_move_args=( ) _pkgctl_db_remove_args=( - '(-a --arch=)'{-a,--arch=}"[Override the architecture (disables auto-detection)]:arch:($_arch[*])" + '(-a --arch)'{-a,--arch}"[Override the architecture (disables auto-detection)]:arch:($DEVTOOLS_VALID_BINARY_ARCHES[*])" '(-h --help)'{-h,--help}'[Display usage]' "1:repo:($DEVTOOLS_VALID_REPOS[*])" '*:pkgbase:_devtools_completions_all_packages' @@ -250,7 +249,7 @@ _sogrep_args=( _offload_build_args=( '(-r --repo)'{-r,--repo}'[Build against a specific repository]:repo:($DEVTOOLS_VALID_BUILDREPOS[*])' - '(-a --arch)'{-a,--arch}'[Build against a specific architecture]:arch:(${_binary_arch[*]})' + '(-a --arch)'{-a,--arch}'[Build against a specific architecture]:arch:(${DEVTOOLS_VALID_BINARY_ARCHES[*]})' '(-s --server)'{-s,--server}'[Offload to a specific Build server]:server:' '(-h --help)'{-h,--help}'[Display usage]' ) diff --git a/src/lib/valid-tags.sh b/src/lib/valid-tags.sh index cef0cc6..62e40ae 100644 --- a/src/lib/valid-tags.sh +++ b/src/lib/valid-tags.sh @@ -4,8 +4,13 @@ : # shellcheck disable=2034 -DEVTOOLS_VALID_ARCHES=( +DEVTOOLS_VALID_BINARY_ARCHES=( x86_64 +) + +# shellcheck disable=2034 +DEVTOOLS_VALID_ARCHES=( + "${DEVTOOLS_VALID_BINARY_ARCHES[@]}" any ) -- cgit v1.2.3-70-g09d2