git-annex/bash-completion.bash
Joey Hess 386b8c394e got bash completion working for "git annex" not just "git-annex"
This needs a patch to git to cause the git-annex completion to be
auto-loaded when completing "git annex <tab>". Otherwise, it will only
load when "git-annex" is tab completed. Once loaded, it works for both
uses. I've submitted the git patch to the git mailing list.
2015-07-16 13:32:23 -04:00

25 lines
789 B
Bash

# Use git-annex's built-in bash completion
# This bash completion is generated by the option parser, so it covers all
# commands, all options, and will never go out of date!
source <(git-annex --bash-completion-script git-annex)
# Called by git's bash completion script when completing "git annex"
_git_annex() {
local cmdline
CMDLINE=(--bash-completion-index $(($COMP_CWORD - 1)))
local seen_git
local seen_annex
for arg in ${COMP_WORDS[@]}; do
if [ "$arg" = git ] && [ -z "$seen_git" ]; then
seen_git=1
CMDLINE=(${CMDLINE[@]} --bash-completion-word git-annex)
elif [ "$arg" = annex ] && [ -z "$seen_annex" ]; then
seen_annex=1
else
CMDLINE=(${CMDLINE[@]} --bash-completion-word $arg)
fi
done
COMPREPLY=( $(git-annex "${CMDLINE[@]}") )
}