X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/stgit/blobdiff_plain/c056d88d4d5a62ce2e60ad6ceae3b498291442dd..c4f99b6c10c3bc2558fe8d9050bcaaa3efb830b0:/contrib/stgit-completion.bash diff --git a/contrib/stgit-completion.bash b/contrib/stgit-completion.bash index 3c3bf92..d497098 100644 --- a/contrib/stgit-completion.bash +++ b/contrib/stgit-completion.bash @@ -15,7 +15,6 @@ _stg_commands=" applied assimilate branch - bury delete diff clean @@ -46,6 +45,7 @@ _stg_commands=" rm series show + sink status sync top @@ -98,6 +98,12 @@ _all_other_patches () | grep -v "^$(cat $g/patches/$b/current 2> /dev/null)$" } +_all_branches () +{ + local g=$(_gitdir) + [ "$g" ] && (cd .git/patches/ && echo *) +} + # List the command options _cmd_options () { @@ -137,6 +143,11 @@ _complete_patch_range_options () COMPREPLY=($(compgen -W "$options" -- "$cur")) } +_complete_branch () +{ + COMPREPLY=($(compgen -W "$(_cmd_options $1) $($2)" -- "${COMP_WORDS[COMP_CWORD]}")) +} + # Generate completions for options from the given list. _complete_options () { @@ -190,13 +201,13 @@ _stg () # repository commands id) _stg_patches $command _all_patches ;; # stack commands - bury) _stg_patches $command _all_patches ;; float) _stg_patches $command _all_patches ;; goto) _stg_patches $command _all_other_patches ;; hide) _stg_patches $command _all_patches ;; pop) _stg_patches $command _applied_patches ;; push) _stg_patches $command _unapplied_patches ;; series) _stg_patches $command _all_patches ;; + sink) _stg_patches $command _all_patches ;; unhide) _stg_patches $command _all_patches ;; # patch commands delete) _stg_patches $command _all_patches ;; @@ -211,6 +222,9 @@ _stg () sync) _stg_patches $command _applied_patches ;; # working-copy commands diff) _stg_patches_options $command _applied_patches "-r --range" ;; + # commands that usually raher accept branches + branch) _complete_branch $command _all_branches ;; + rebase) _complete_branch $command _all_branches ;; # all the other commands *) _stg_common $command ;; esac