completion/bash-it: use `read -a` to populate `$COMPREPLY`
This allows for spaces and special characters in file names, i.e. internaltional/unicode words.pull/2029/head
parent
3874ad85c2
commit
e1e971c0ea
|
|
@ -1,31 +1,43 @@
|
|||
# shellcheck shell=bash
|
||||
|
||||
function _bash-it-comp-list-available-not-enabled() {
|
||||
local subdirectory="$1"
|
||||
COMPREPLY=($(compgen -W "all $(_bash-it-component-list-disabled "${subdirectory}")" -- "${cur}"))
|
||||
local subdirectory="$1" IFS=$'\n' REPL
|
||||
COMPREPLY=('all')
|
||||
while read -ra REPL; do
|
||||
COMPREPLY+=("${REPL[@]}")
|
||||
done < <(compgen -W "$(_bash-it-component-list-disabled "${subdirectory}")" -- "${cur}")
|
||||
}
|
||||
|
||||
function _bash-it-comp-list-enabled() {
|
||||
local subdirectory="$1"
|
||||
COMPREPLY=($(compgen -W "all $(_bash-it-component-list-enabled "${subdirectory}")" -- "${cur}"))
|
||||
local subdirectory="$1" IFS=$'\n' REPL
|
||||
COMPREPLY=('all')
|
||||
while read -ra REPL; do
|
||||
COMPREPLY+=("${REPL[@]}")
|
||||
done < <(compgen -W "$(_bash-it-component-list-enabled "${subdirectory}")" -- "${cur}")
|
||||
}
|
||||
|
||||
function _bash-it-comp-list-available() {
|
||||
local subdirectory="$1"
|
||||
COMPREPLY=($(compgen -W "all $(_bash-it-component-list "${subdirectory}")" -- "${cur}"))
|
||||
local subdirectory="$1" IFS=$'\n' REPL
|
||||
COMPREPLY=('all')
|
||||
while read -ra REPL; do
|
||||
COMPREPLY+=("${REPL[@]}")
|
||||
done < <(compgen -W "$(_bash-it-component-list "${subdirectory}")" -- "${cur}")
|
||||
}
|
||||
|
||||
function _bash-it-comp-list-profiles() {
|
||||
local profiles
|
||||
local profiles IFS=$'\n' REPL
|
||||
COMPREPLY=()
|
||||
|
||||
profiles=("${BASH_IT}/profiles"/*.bash_it)
|
||||
profiles=("${profiles[@]##*/}")
|
||||
|
||||
COMPREPLY=($(compgen -W "${profiles[*]%%.bash_it}" -- "${cur}"))
|
||||
while read -ra REPL; do
|
||||
COMPREPLY+=("${REPL[@]}")
|
||||
done < <(compgen -W "${profiles[*]%%.bash_it}" -- "${cur}")
|
||||
}
|
||||
|
||||
function _bash-it-comp() {
|
||||
local cur prev opts
|
||||
local cur prev opts chose_opt file_type
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD - 1]}"
|
||||
|
|
|
|||
|
|
@ -155,10 +155,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/aliases/enabled/atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/apm.completion.bash
|
||||
ln -s "$BASH_IT/completion/available/apm.completion.bash" "$BASH_IT/completion/enabled/apm.completion.bash"
|
||||
assert_link_exist "$BASH_IT/completion/enabled/apm.completion.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias a'
|
||||
|
|
@ -166,10 +166,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/350---apm.completion.bash
|
||||
ln -s "$BASH_IT/completion/available/apm.completion.bash" "$BASH_IT/completion/enabled/350---apm.completion.bash"
|
||||
assert_link_exist "$BASH_IT/completion/enabled/350---apm.completion.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias a'
|
||||
|
|
@ -177,10 +177,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/enabled/150---atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/enabled/350---apm.completion.bash
|
||||
ln -s "$BASH_IT/completion/available/apm.completion.bash" "$BASH_IT/enabled/350---apm.completion.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias a'
|
||||
|
|
@ -188,10 +188,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/docker-machine.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/docker-machine.plugin.bash" "$BASH_IT/plugins/enabled/docker-machine.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/docker-machine.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable plugin docker'
|
||||
|
|
@ -199,10 +199,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/350---docker-machine.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/docker-machine.plugin.bash" "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable plugin docker'
|
||||
|
|
@ -210,10 +210,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/enabled/350---docker-machine.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/docker-machine.plugin.bash" "$BASH_IT/enabled/350---docker-machine.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/350---docker-machine.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable plugin docker'
|
||||
|
|
@ -221,10 +221,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/todo.txt-cli.aliases.bash" "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/plugins/enabled/todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias to'
|
||||
|
|
@ -232,10 +232,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/todo.txt-cli.aliases.bash" "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias to'
|
||||
|
|
@ -243,10 +243,10 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/enabled/150---todo.txt-cli.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/todo.txt-cli.aliases.bash" "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
|
||||
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/enabled/350---todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it disable alias to'
|
||||
|
|
@ -264,7 +264,7 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/aliases/enabled/atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias a'
|
||||
|
|
@ -272,7 +272,7 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias a'
|
||||
|
|
@ -280,55 +280,55 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
|
||||
ln -s "$BASH_IT/aliases/available/atom.aliases.bash" "$BASH_IT/enabled/150---atom.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias a'
|
||||
assert_line -n 0 "all ag ansible apt"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker* plugins when docker-compose is enabled with the old location and name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable plugin docker'
|
||||
assert_line -n 0 "docker docker-compose docker-machine"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker-* plugins when docker-compose is enabled with the old location and priority-based name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable plugin docker'
|
||||
assert_line -n 0 "docker docker-compose docker-machine"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker-* plugins when docker-compose is enabled with the new location and priority-based name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable plugin docker'
|
||||
assert_line -n 0 "docker docker-compose docker-machine"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker* completions when docker-compose is enabled with the old location and name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable completion docker'
|
||||
assert_line -n 0 "docker docker-compose docker-machine"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker* completions when docker-compose is enabled with the old location and priority-based name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable completion docker'
|
||||
assert_line -n 0 "docker docker-compose docker-machine"
|
||||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
|
||||
@test "completion bash-it: enable - provide the docker* completions when docker-compose is enabled with the new location and priority-based name" {
|
||||
ln -s "$BASH_IT/aliases/available/docker-compose.aliases.bash" "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
|
||||
|
||||
run __check_completion 'bash-it enable completion docker'
|
||||
|
|
@ -336,7 +336,7 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" {
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/plugins/enabled/todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias to'
|
||||
|
|
@ -344,7 +344,7 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" {
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias to'
|
||||
|
|
@ -352,7 +352,7 @@ function __check_completion () {
|
|||
}
|
||||
|
||||
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" {
|
||||
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash
|
||||
ln -s "$BASH_IT/plugins/available/todo.plugin.bash" "$BASH_IT/enabled/350---todo.plugin.bash"
|
||||
assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash"
|
||||
|
||||
run __check_completion 'bash-it enable alias to'
|
||||
|
|
|
|||
Loading…
Reference in New Issue