diff options
Diffstat (limited to 'bash-completion.bash')
-rw-r--r-- | bash-completion.bash | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/bash-completion.bash b/bash-completion.bash new file mode 100644 index 000000000..b0367c030 --- /dev/null +++ b/bash-completion.bash @@ -0,0 +1,25 @@ +# 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[@]}") ) +} |