build bash completion improved.

This commit is contained in:
2022-07-14 10:57:53 +01:00
parent 563c486773
commit a05e0b7e74

View File

@@ -22,22 +22,42 @@ target:
EOF
}
completion_contains()
{
# Platforms
for WORD in "$@"; do
if [[ "${COMP_WORDS[*]}" =~ "$WORD" ]]; then
return 1
fi
done
return 0
}
completion_add_if()
{
completion_contains "$@"
if [[ $? == 0 ]]; then
CANDIDATES+=" $@"
fi
}
complete -F build_completion build
build_completion()
{
local CANDIDATES="help clobber tests addon-checksums icecc docker make"
local CANDIDATES="help clobber tests addon-checksums"
# Docker
completion_add_if docker make
# Build hosts
completion_add_if icecc local
# Platforms
local PLATFORMS="native marlin bailey loggan"
if ! [[ "${COMP_WORDS[*]}" =~ "marlin" ||
"${COMP_WORDS[*]}" =~ "bailey" ||
"${COMP_WORDS[*]}" =~ "loggan" ||
"${COMP_WORDS[*]}" =~ "native" ]]; then
CANDIDATES+=" $PLATFORMS"
fi
completion_add_if native marlin bailey loggan
COMPREPLY=($(compgen -W "$CANDIDATES" "${COMP_WORDS[${COMP_CWORD}]}"))
}
build()
{
local BUILD_PLATFORM=marlin