From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- dev-vcs/git-imerge/files/git-imerge.bashcomplete | 267 +++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 dev-vcs/git-imerge/files/git-imerge.bashcomplete (limited to 'dev-vcs/git-imerge/files') diff --git a/dev-vcs/git-imerge/files/git-imerge.bashcomplete b/dev-vcs/git-imerge/files/git-imerge.bashcomplete new file mode 100644 index 000000000000..0fe8e04f64de --- /dev/null +++ b/dev-vcs/git-imerge/files/git-imerge.bashcomplete @@ -0,0 +1,267 @@ +__git_imerge_branches () { + git for-each-ref --format='%(refname)' refs/heads/ refs/remotes/ 2>/dev/null | + sed -e 's!^refs/heads/!!' -e 's!^refs/remotes/!!' +} + +__git_imerge_names () { + git for-each-ref --format='%(refname)' refs/imerge/ 2>/dev/null | + sed -e 's/^refs\/imerge\/\(.*\)\/.*/\1/' -e '/manual/d' -e '/auto/d' +} + +__git_imerge_goals="\ +merge +rebase +rebase-with-history +full +" + +__git_imerge_commands="\ +start +merge +rebase +continue +finish +diagram +list +init +record +autofill +simplify +remove +reparent +" + +__git_imerge_start_options="\ +--help +--manual +--name +--branch +--goal +--first-parent +" + +__git_imerge_init_options=$__git_imerge_start_options + +__git_imerge_continue_options="\ +--help +--name +--edit +--no-edit +" + +__git_imerge_finish_options="\ +--help +--name +--goal +--branch +--force +" + +__git_imerge_simplify_options=$__git_imerge_finish_options + +__git_imerge_merge_options="\ +--help +--name +--goal +--branch +--manual +" + +__git_imerge_list_options="\ +--help +" + +__git_imerge_reparent_options=$__git_imerge_list_options + +__git_imerge_record_options="\ +--help +--name +--edit +--no-edit +" + +__git_imerge_autofill_options="\ +--help +--name +" + +__git_imerge_diagram_options="\ +--help +--name +--commits +--frontier +--html +--color +--no-color +" + +__git_imerge_remove_options=$__git_imerge_autofill_options + +__git_imerge_rebase_options=$__git_imerge_merge_options + +__git-imerge_start_completion() { + case "$1_$cur" in + --help_|--branch_|_--branch=|--name_|_--name=) + return + ;; + --goal_*|*_--goal=*) + __gitcomp "$__git_imerge_goals" "" "${cur##--goal=}" + return + ;; + *-|*_-*?) + __gitcomp "$__git_imerge_start_options" + return + ;; + esac + __gitcomp "$(__git_imerge_branches)" +} + +__git-imerge_init_completion() { + __git-imerge_start_completion $1 +} + +__git-imerge_continue_completion() { + case "$1_$cur" in + --help_) + return + ;; + --name_*|*_--name=*) + __gitcomp "$(__git_imerge_names)" "" "${cur##--name=}" + return + ;; + esac + __gitcomp "$__git_imerge_continue_options" +} + +__git-imerge_finish_completion() { + case "$1_$cur" in + --help_) + return + ;; + --goal_*|*_--goal=*) + __gitcomp "$__git_imerge_goals" "" "${cur##--goal=}" + return + ;; + --branch_*|*_--branch=*) + __gitcomp "$(__git_imerge_branches)" "" "${cur##--branch=}" + return + ;; + --name_*|*_--name=*) + __gitcomp "$(__git_imerge_names)" "" "${cur##--name=}" + return + ;; + esac + __gitcomp "$__git_imerge_finish_options" +} + +__git-imerge_simplify_completion() { + __git-imerge_finish_completion $1 +} + +__git-imerge_merge_completion() { + case "$1_$cur" in + --help_|--branch_|_--branch=|--name_|_--name=) + return + ;; + --goal_*|*_--goal=*) + __gitcomp "$__git_imerge_goals" "" "${cur##--goal=}" + return + ;; + *-|*_-*?) + __gitcomp "$__git_imerge_merge_options" + return + ;; + esac + __gitcomp "$(__git_imerge_branches)" +} + +__git-imerge_rebase_completion() { + __git-imerge_merge_completion $1 +} + +__git-imerge_list_completion() { + case "$1" in + --help) + return + ;; + esac + __gitcomp "$__git_imerge_list_options" +} + +__git-imerge_reparent_completion() { + __git-imerge_list_completion $1 +} + +__git-imerge_record_completion() { + case "$1_$cur" in + --help_) + return + ;; + --name_*|*_--name=*) + __gitcomp "$(__git_imerge_names)" "" "${cur##--name=}" + return + ;; + esac + __gitcomp "$__git_imerge_record_options" +} + +__git-imerge_autofill_completion() { + case "$1_$cur" in + --help_) + return + ;; + --name_*|*_--name=*) + __gitcomp "$(__git_imerge_names)" "" "${cur##--name=}" + return + ;; + esac + __gitcomp "$__git_imerge_autofill_options" +} + +__git-imerge_remove_completion() { + __git-imerge_autofill_completion $1 +} + +__git-imerge_diagram_completion() { + case "$1_$cur" in + --help_|--html_|_--html=) + return + ;; + --name_*|*_--name=*) + __gitcomp "$(__git_imerge_names)" "" "${cur##--name=}" + return + ;; + esac + __gitcomp "$__git_imerge_diagram_options" +} + +_git_imerge () { + # Disable default filename completion. Note that "compopt" is only + # available in Bash 4 and newer, so we check for existence before + # trying to use it. + type compopt >/dev/null 2>&1 && compopt +o default +o bashdefault + + local i command cur_opt + for ((i=0; i <= ${cword}; i++)); do + if [ -n "$command" ] && [ "${words[i]}" != "$cur" ]; then + cur_opt="${words[i]}" + fi + if [ -z "$command" ] && \ + [ "$i" -lt "${cword}" ] && \ + [[ "${words[i-1]}" == *"imerge"* ]] + then + command="${words[i]}" + fi + done + + if test -z "$command"; then + __gitcomp "$__git_imerge_commands" + return + fi + + if [ -z `type -t __git-imerge_"$command"_completion "$cur_opt"` ]; then + return + fi + + __git-imerge_"$command"_completion "$cur_opt" +} -- cgit v1.2.3