diff options
Diffstat (limited to 'composer-bash-completion')
-rw-r--r-- | composer-bash-completion | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/composer-bash-completion b/composer-bash-completion index 4aed20f..4ca8915 100644 --- a/composer-bash-completion +++ b/composer-bash-completion @@ -7,24 +7,25 @@ _sf_composer() { # Use newline as only separator to allow space in completion values - IFS=$'\n' + local IFS=$'\n' local sf_cmd="${COMP_WORDS[0]}" # for an alias, get the real script behind it - if [[ $(type -t $sf_cmd) == "alias" ]]; then + sf_cmd_type=$(type -t $sf_cmd) + if [[ $sf_cmd_type == "alias" ]]; then sf_cmd=$(alias $sf_cmd | sed -E "s/alias $sf_cmd='(.*)'/\1/") - else + elif [[ $sf_cmd_type == "file" ]]; then sf_cmd=$(type -p $sf_cmd) fi - if [ ! -x "$sf_cmd" ]; then + if [[ $sf_cmd_type != "function" && ! -x $sf_cmd ]]; then return 1 fi local cur prev words cword _get_comp_words_by_ref -n := cur prev words cword - local completecmd=("$sf_cmd" "_complete" "-sbash" "-c$cword" "-S2.4.1") + local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S2.8.9") for w in ${words[@]}; do w=$(printf -- '%b' "$w") # remove quotes from typed values |