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 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 complete -F build_completion build
build_completion() 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 # Platforms
local PLATFORMS="native marlin bailey loggan" completion_add_if native marlin bailey loggan
if ! [[ "${COMP_WORDS[*]}" =~ "marlin" ||
"${COMP_WORDS[*]}" =~ "bailey" ||
"${COMP_WORDS[*]}" =~ "loggan" ||
"${COMP_WORDS[*]}" =~ "native" ]]; then
CANDIDATES+=" $PLATFORMS"
fi
COMPREPLY=($(compgen -W "$CANDIDATES" "${COMP_WORDS[${COMP_CWORD}]}")) COMPREPLY=($(compgen -W "$CANDIDATES" "${COMP_WORDS[${COMP_CWORD}]}"))
} }
build() build()
{ {
local BUILD_PLATFORM=marlin local BUILD_PLATFORM=marlin