bash autocomplete in two stages
up vote
0
down vote
favorite
I have a directory which contains multiple Tools (one folder per tool). Each of these tool directories, contains multiple folders (1 folder per version).
tool1
-- ver1
-- ver2
tool2
--ver1
--ver2
And I have a tool, that use this cache dir. I want to autocomplete the possible tools/versions in this manner:
./my_bin TOOL:VERSION
I use this complete function:
for dir in $cache_dir/*; do
if [[ -d $dir ]]; then
tool=$(basename "$dir")
for version in $dir/*; do
if [[ -d $version ]]; then
ver=$(basename "$version")
array+="${tool}:${ver} " <<-------------
fi
done
fi
done
COMPREPLY=($(compgen -W "$(echo "${array[*]}")" -- "${COMP_WORDS[-1]}"))
this command let me to autocomplete by showing all the Tool:Version couples, in the cache dir.
My question is, how can I show only the available Tools first, add the ':' separator automatically, and then show the available versions for this tool ?
It's very important for me to respect the Tool:Version format in the command argument.
bash autocomplete
add a comment |
up vote
0
down vote
favorite
I have a directory which contains multiple Tools (one folder per tool). Each of these tool directories, contains multiple folders (1 folder per version).
tool1
-- ver1
-- ver2
tool2
--ver1
--ver2
And I have a tool, that use this cache dir. I want to autocomplete the possible tools/versions in this manner:
./my_bin TOOL:VERSION
I use this complete function:
for dir in $cache_dir/*; do
if [[ -d $dir ]]; then
tool=$(basename "$dir")
for version in $dir/*; do
if [[ -d $version ]]; then
ver=$(basename "$version")
array+="${tool}:${ver} " <<-------------
fi
done
fi
done
COMPREPLY=($(compgen -W "$(echo "${array[*]}")" -- "${COMP_WORDS[-1]}"))
this command let me to autocomplete by showing all the Tool:Version couples, in the cache dir.
My question is, how can I show only the available Tools first, add the ':' separator automatically, and then show the available versions for this tool ?
It's very important for me to respect the Tool:Version format in the command argument.
bash autocomplete
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a directory which contains multiple Tools (one folder per tool). Each of these tool directories, contains multiple folders (1 folder per version).
tool1
-- ver1
-- ver2
tool2
--ver1
--ver2
And I have a tool, that use this cache dir. I want to autocomplete the possible tools/versions in this manner:
./my_bin TOOL:VERSION
I use this complete function:
for dir in $cache_dir/*; do
if [[ -d $dir ]]; then
tool=$(basename "$dir")
for version in $dir/*; do
if [[ -d $version ]]; then
ver=$(basename "$version")
array+="${tool}:${ver} " <<-------------
fi
done
fi
done
COMPREPLY=($(compgen -W "$(echo "${array[*]}")" -- "${COMP_WORDS[-1]}"))
this command let me to autocomplete by showing all the Tool:Version couples, in the cache dir.
My question is, how can I show only the available Tools first, add the ':' separator automatically, and then show the available versions for this tool ?
It's very important for me to respect the Tool:Version format in the command argument.
bash autocomplete
I have a directory which contains multiple Tools (one folder per tool). Each of these tool directories, contains multiple folders (1 folder per version).
tool1
-- ver1
-- ver2
tool2
--ver1
--ver2
And I have a tool, that use this cache dir. I want to autocomplete the possible tools/versions in this manner:
./my_bin TOOL:VERSION
I use this complete function:
for dir in $cache_dir/*; do
if [[ -d $dir ]]; then
tool=$(basename "$dir")
for version in $dir/*; do
if [[ -d $version ]]; then
ver=$(basename "$version")
array+="${tool}:${ver} " <<-------------
fi
done
fi
done
COMPREPLY=($(compgen -W "$(echo "${array[*]}")" -- "${COMP_WORDS[-1]}"))
this command let me to autocomplete by showing all the Tool:Version couples, in the cache dir.
My question is, how can I show only the available Tools first, add the ':' separator automatically, and then show the available versions for this tool ?
It's very important for me to respect the Tool:Version format in the command argument.
bash autocomplete
bash autocomplete
edited Nov 30 at 9:48
asked Nov 30 at 9:30
Chadi
12
12
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f485101%2fbash-autocomplete-in-two-stages%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown