From 0359c8f456d9ba7edb0f4f1d57c97759d1a50014 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 3 Dec 2025 22:23:23 +0000 Subject: [PATCH] shell-completion: fix portablectl path completion with preceding params The completion fails to complete to paths for verbs that need them when a --param is the previous word, e.g.: portablectl attach --runtime fails to complete to paths (cherry picked from commit 2abb433ca14b8ed6621b2f204db6ad539e326934) --- shell-completion/bash/portablectl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell-completion/bash/portablectl b/shell-completion/bash/portablectl index 824510bbcae..11294b9093e 100644 --- a/shell-completion/bash/portablectl +++ b/shell-completion/bash/portablectl @@ -91,7 +91,7 @@ _portablectl() { elif __contains_word "$verb" ${VERBS[STANDALONE]}; then comps='' elif __contains_word "$verb" ${VERBS[IMAGE]}; then - if [[ $n == 1 ]]; then + if [[ $n == 1 ]] || [[ "$prev" = -* ]] || __contains_word "${COMP_WORDS[COMP_CWORD-2]}" ${OPTS[ARG]}; then comps=$( compgen -A file -- "$cur" ) compopt -o filenames else @@ -101,10 +101,10 @@ _portablectl() { comps=$( compgen -A file -- "$cur" ) compopt -o filenames elif __contains_word "$verb" ${VERBS[IMAGE_WITH_BOOL]}; then - if [[ $n == 1 ]]; then + if [[ $n == 1 ]] || [[ "$prev" = -* ]] || __contains_word "${COMP_WORDS[COMP_CWORD-2]}" ${OPTS[ARG]}; then comps=$( compgen -A file -- "$cur" ) compopt -o filenames - elif [[ $n == 2 ]]; then + elif ! __contains_word "$prev" "yes" "no" && { [[ $n == 2 ]] || [[ "$prev" != -* ]]; }; then comps='yes no' else comps=''