contrib/bash_completion
author Greg Ward <greg-hg@gerg.ca>
Mon, 05 Oct 2009 18:17:13 -0400
changeset 9547 f57640bf10d4
parent 9511 33033af09308
child 9602 fc493cb90bb1
permissions -rw-r--r--
cmdutil: changeset_printer: use methods of filectx/changectx. This allows extensions that modify changeset metadata (e.g. description) by overriding methods of changectx to get consistent behavior from all log-like commands, regardless of whether templates or styles are used. Without this, overriding changectx methods works if you use styles or templates, but not with default log format. This meant adding filectx.extra() for consistency with changectx.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     1
# bash completion for the Mercurial distributed SCM
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     2
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     3
# Docs:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     4
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     5
# If you source this file from your .bashrc, bash should be able to
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     6
# complete a command line that uses hg with all the available commands
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     7
# and options and sometimes even arguments.
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     8
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
     9
# Mercurial allows you to define additional commands through extensions.
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    10
# Bash should be able to automatically figure out the name of these new
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    11
# commands and their options.  See below for how to define _hg_opt_foo
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    12
# and _hg_cmd_foo functions to fine-tune the completion for option and
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    13
# non-option arguments, respectively.
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    14
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    15
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    16
# Notes about completion for specific commands:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    17
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    18
# - the completion function for the email command from the patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    19
#   extension will try to call _hg_emails to get a list of e-mail
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    20
#   addresses.  It's up to the user to define this function.  For
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    21
#   example, put the addresses of the lists that you usually patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    22
#   in ~/.patchbomb-to and the addresses that you usually use to send
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    23
#   the patchbombs in ~/.patchbomb-from and use something like this:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    24
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    25
#      _hg_emails()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    26
#      {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    27
#          if [ -r ~/.patchbomb-$1 ]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    28
#              cat ~/.patchbomb-$1
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    29
#          fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    30
#      }
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
    31
#
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    32
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    33
# Writing completion functions for additional commands:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    34
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    35
# If it exists, the function _hg_cmd_foo will be called without
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    36
# arguments to generate the completion candidates for the hg command
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    37
# "foo".  If the command receives some arguments that aren't options
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    38
# even though they start with a "-", you can define a function called
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    39
# _hg_opt_foo to generate the completion candidates.  If _hg_opt_foo
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
    40
# doesn't return 0, regular completion for options is attempted.
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    41
#
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    42
# In addition to the regular completion variables provided by bash,
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    43
# the following variables are also set:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    44
# - $hg - the hg program being used (e.g. /usr/bin/hg)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    45
# - $cmd - the name of the hg command being completed
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    46
# - $cmd_index - the index of $cmd in $COMP_WORDS
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    47
# - $cur - the current argument being completed
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    48
# - $prev - the argument before $cur
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    49
# - $global_args - "|"-separated list of global options that accept
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    50
#                  an argument (e.g. '--cwd|-R|--repository')
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    51
# - $canonical - 1 if we canonicalized $cmd before calling the function
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    52
#                0 otherwise
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
    53
#
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
    54
1311
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
    55
shopt -s extglob
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
    56
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    57
_hg_commands()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    58
{
1888
283d2ab1e020 Make bash_completion more robust for e.g. broken hgrc or old hg installations.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1887
diff changeset
    59
    local commands
283d2ab1e020 Make bash_completion more robust for e.g. broken hgrc or old hg installations.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1887
diff changeset
    60
    commands="$("$hg" debugcomplete "$cur" 2>/dev/null)" || commands=""
1887
913397c27cd8 new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1820
diff changeset
    61
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$commands' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    62
}
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    63
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    64
_hg_paths()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    65
{
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    66
    local paths="$("$hg" paths 2>/dev/null | sed -e 's/ = .*$//')"
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    67
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$paths' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    68
}
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    69
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    70
_hg_repos()
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    71
{
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    72
    local i
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    73
    for i in $(compgen -d -- "$cur"); do
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    74
	test ! -d "$i"/.hg || COMPREPLY=(${COMPREPLY[@]:-} "$i")
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    75
    done
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    76
}
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
    77
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
    78
_hg_status()
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
    79
{
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    80
    local files="$("$hg" status -n$1 . 2>/dev/null)"
6232
59200a2de7bf Fixed bash completion for filenames containing spaces.
Jonas Diemer <diemer@gmx.de>
parents: 5507
diff changeset
    81
    local IFS=$'\n'
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    82
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
    83
}
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
    84
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    85
_hg_tags()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    86
{
2035
107dc72880f8 Make 'hg tags -q' only list tag names without revision numbers and hashes,
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2034
diff changeset
    87
    local tags="$("$hg" tags -q 2>/dev/null)"
107dc72880f8 Make 'hg tags -q' only list tag names without revision numbers and hashes,
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2034
diff changeset
    88
    local IFS=$'\n'
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
    89
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$tags' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    90
}
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    91
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    92
_hg_branches()
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    93
{
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    94
    local branches="$("$hg" branches -q 2>/dev/null)"
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    95
    local IFS=$'\n'
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    96
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$branches' -- "$cur"))
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    97
}
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
    98
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
    99
# this is "kind of" ugly...
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   100
_hg_count_non_option()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   101
{
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   102
    local i count=0
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   103
    local filters="$1"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   104
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   105
    for ((i=1; $i<=$COMP_CWORD; i++)); do
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   106
	if [[ "${COMP_WORDS[i]}" != -* ]]; then
1152
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
   107
	    if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
   108
		continue
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
   109
	    fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   110
	    count=$(($count + 1))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   111
	fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   112
    done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   113
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   114
    echo $(($count - 1))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   115
}
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   116
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   117
_hg()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   118
{
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   119
    local cur prev cmd cmd_index opts i
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   120
    # global options that receive an argument
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   121
    local global_args='--cwd|-R|--repository'
1683
063e04831a09 Use user specified path to hg in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1643
diff changeset
   122
    local hg="$1"
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
   123
    local canonical=0
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   124
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   125
    COMPREPLY=()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   126
    cur="$2"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   127
    prev="$3"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   128
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
   129
    # searching for the command
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   130
    # (first non-option argument that doesn't follow a global option that
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   131
    #  receives an argument)
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   132
    for ((i=1; $i<=$COMP_CWORD; i++)); do
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   133
	if [[ ${COMP_WORDS[i]} != -* ]]; then
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   134
	    if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   135
		cmd="${COMP_WORDS[i]}"
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   136
		cmd_index=$i
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   137
		break
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   138
	    fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   139
	fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   140
    done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   141
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   142
    if [[ "$cur" == -* ]]; then
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
   143
	if [ "$(type -t "_hg_opt_$cmd")" = function ] && "_hg_opt_$cmd"; then
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
   144
	    return
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
   145
	fi
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
   146
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1888
diff changeset
   147
	opts=$("$hg" debugcomplete --options "$cmd" 2>/dev/null)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   148
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   149
	COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$opts' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   150
	return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   151
    fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   152
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   153
    # global options
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   154
    case "$prev" in
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   155
	-R|--repository)
3992
d86ab4ba5ae6 Yield entries from [paths], too, when completing -R/--repository.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3486
diff changeset
   156
	    _hg_paths
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
   157
	    _hg_repos
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   158
	    return
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   159
	;;
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   160
	--cwd)
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
   161
	    # Stick with default bash completion
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   162
	    return
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   163
	;;
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
   164
    esac
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   165
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   166
    if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   167
	_hg_commands
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   168
	return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   169
    fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   170
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   171
    # try to generate completion candidates for whatever command the user typed
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   172
    local help
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   173
    if _hg_command_specific; then
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   174
	return
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   175
    fi
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
   176
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   177
    # canonicalize the command name and try again
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   178
    help=$("$hg" help "$cmd" 2>/dev/null)
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   179
    if [ $? -ne 0 ]; then
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   180
	# Probably either the command doesn't exist or it's ambiguous
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   181
	return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   182
    fi
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   183
    cmd=${help#hg }
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   184
    cmd=${cmd%%[$' \n']*}
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   185
    canonical=1
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   186
    _hg_command_specific
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   187
}
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   188
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   189
_hg_command_specific()
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   190
{
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   191
    if [ "$(type -t "_hg_cmd_$cmd")" = function ]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   192
	"_hg_cmd_$cmd"
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   193
	return 0
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   194
    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   195
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   196
    if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" == --rev ]; then
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   197
	if [ $canonical = 1 ]; then
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   198
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   199
	    _hg_branches
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   200
	    return 0
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   201
	elif [[ status != "$cmd"* ]]; then
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   202
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   203
	    _hg_branches
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   204
	    return 0
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   205
	else
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   206
	    return 1
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   207
	fi
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   208
    fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   209
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   210
    case "$cmd" in
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   211
	help)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   212
	    _hg_commands
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   213
	;;
3481
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   214
	export)
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   215
	    if _hg_ext_mq_patchlist qapplied && [ "${COMPREPLY[*]}" ]; then
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   216
		return 0
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   217
	    fi
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   218
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   219
	    _hg_branches
3481
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   220
	;;
13a9a2136dd7 bash_completion: make export fall back to tags when there's no mq patch applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3480
diff changeset
   221
	manifest|update)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   222
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   223
	    _hg_branches
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   224
	;;
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
   225
	pull|push|outgoing|incoming)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   226
	    _hg_paths
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
   227
	    _hg_repos
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   228
	;;
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   229
	paths)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   230
	    _hg_paths
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   231
	;;
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   232
	add)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   233
	    _hg_status "u"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   234
	;;
8718
3463b28681ee Support merge in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 6232
diff changeset
   235
	merge)
3463b28681ee Support merge in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 6232
diff changeset
   236
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   237
	    _hg_branches
8718
3463b28681ee Support merge in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 6232
diff changeset
   238
	;;
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
   239
	commit)
1639
dbfc04a55607 _hg_status improvements in bash_completion:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1638
diff changeset
   240
	    _hg_status "mar"
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   241
	;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   242
	remove)
1639
dbfc04a55607 _hg_status improvements in bash_completion:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1638
diff changeset
   243
	    _hg_status "d"
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   244
	;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   245
	forget)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   246
	    _hg_status "a"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   247
	;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   248
	diff)
1639
dbfc04a55607 _hg_status improvements in bash_completion:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1638
diff changeset
   249
	    _hg_status "mar"
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   250
	;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   251
	revert)
1639
dbfc04a55607 _hg_status improvements in bash_completion:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1638
diff changeset
   252
	    _hg_status "mard"
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
   253
	;;
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   254
	clone)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   255
	    local count=$(_hg_count_non_option)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   256
	    if [ $count = 1 ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   257
		_hg_paths
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   258
	    fi
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   259
	    _hg_repos
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   260
	;;
1115
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
   261
	debugindex|debugindexdot)
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   262
	    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur"))
1115
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
   263
	;;
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
   264
	debugdata)
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   265
	    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur"))
1115
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
   266
	;;
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   267
	*)
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   268
	    return 1
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   269
	;;
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   270
    esac
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   271
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
   272
    return 0
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   273
}
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
   274
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
   275
complete -o bashdefault -o default -F _hg hg 2>/dev/null \
1153
fa9ae7df88a9 bash_completion: try to use bash3 features if they're available
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1152
diff changeset
   276
    || complete -o default -F _hg hg
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   277
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   278
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   279
# Completion for commands provided by extensions
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   280
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   281
# mq
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   282
_hg_ext_mq_patchlist()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   283
{
3480
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   284
    local patches
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   285
    patches=$("$hg" $1 2>/dev/null)
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   286
    if [ $? -eq 0 ] && [ "$patches" ]; then
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   287
	COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$patches' -- "$cur"))
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   288
	return 0
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   289
    fi
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
   290
    return 1
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   291
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   292
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   293
_hg_ext_mq_queues()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   294
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   295
    local root=$("$hg" root 2>/dev/null)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   296
    local n
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   297
    for n in $(cd "$root"/.hg && compgen -d -- "$cur"); do
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   298
	# I think we're usually not interested in the regular "patches" queue
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   299
	# so just filter it.
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   300
	if [ "$n" != patches ] && [ -e "$root/.hg/$n/series" ]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   301
	    COMPREPLY=(${COMPREPLY[@]:-} "$n")
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   302
	fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   303
    done
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   304
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   305
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   306
_hg_cmd_qpop()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   307
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   308
    if [[ "$prev" = @(-n|--name) ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   309
	_hg_ext_mq_queues
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   310
	return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   311
    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   312
    _hg_ext_mq_patchlist qapplied
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   313
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   314
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   315
_hg_cmd_qpush()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   316
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   317
    if [[ "$prev" = @(-n|--name) ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   318
	_hg_ext_mq_queues
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   319
	return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   320
    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   321
    _hg_ext_mq_patchlist qunapplied
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   322
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   323
5507
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   324
_hg_cmd_qgoto()
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   325
{
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   326
    if [[ "$prev" = @(-n|--name) ]]; then
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   327
	_hg_ext_mq_queues
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   328
	return
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   329
    fi
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   330
    _hg_ext_mq_patchlist qseries
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   331
}
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
   332
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   333
_hg_cmd_qdelete()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   334
{
3482
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
   335
    local qcmd=qunapplied
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
   336
    if [[ "$prev" = @(-r|--rev) ]]; then
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
   337
	qcmd=qapplied
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
   338
    fi
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
   339
    _hg_ext_mq_patchlist $qcmd
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   340
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   341
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   342
_hg_cmd_qsave()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   343
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   344
    if [[ "$prev" = @(-n|--name) ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   345
	_hg_ext_mq_queues
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   346
	return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   347
    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   348
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   349
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   350
_hg_cmd_strip()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   351
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   352
    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   353
    _hg_branches
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   354
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   355
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   356
_hg_cmd_qcommit()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   357
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   358
    local root=$("$hg" root 2>/dev/null)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   359
    # this is run in a sub-shell, so we can't use _hg_status
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   360
    local files=$(cd "$root/.hg/patches" 2>/dev/null &&
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   361
                  "$hg" status -nmar 2>/dev/null)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   362
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   363
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   364
3484
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   365
_hg_cmd_qfold()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   366
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   367
    _hg_ext_mq_patchlist qunapplied
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   368
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   369
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   370
_hg_cmd_qrename()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   371
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   372
    _hg_ext_mq_patchlist qseries
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   373
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   374
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   375
_hg_cmd_qheader()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   376
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   377
    _hg_ext_mq_patchlist qseries
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   378
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   379
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   380
_hg_cmd_qclone()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   381
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   382
    local count=$(_hg_count_non_option)
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   383
    if [ $count = 1 ]; then
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   384
	_hg_paths
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   385
    fi
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   386
    _hg_repos
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   387
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   388
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   389
_hg_ext_mq_guards()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   390
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   391
    "$hg" qselect --series 2>/dev/null | sed -e 's/^.//'
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   392
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   393
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   394
_hg_cmd_qselect()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   395
{
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   396
    local guards=$(_hg_ext_mq_guards)
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   397
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$guards' -- "$cur"))
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   398
}
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
   399
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   400
_hg_cmd_qguard()
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   401
{
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   402
    local prefix=''
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   403
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   404
    if [[ "$cur" == +* ]]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   405
	prefix=+
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   406
    elif [[ "$cur" == -* ]]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   407
	prefix=-
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   408
    fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   409
    local ncur=${cur#[-+]}
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   410
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   411
    if ! [ "$prefix" ]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   412
	_hg_ext_mq_patchlist qseries
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   413
	return
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   414
    fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   415
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   416
    local guards=$(_hg_ext_mq_guards)
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   417
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -P $prefix -W '$guards' -- "$ncur"))
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   418
}
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   419
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   420
_hg_opt_qguard()
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   421
{
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   422
    local i
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   423
    for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   424
	if [[ ${COMP_WORDS[i]} != -* ]]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   425
	    if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   426
		_hg_cmd_qguard
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   427
		return 0
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   428
	    fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   429
	elif [ "${COMP_WORDS[i]}" = -- ]; then
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   430
	    _hg_cmd_qguard
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   431
	    return 0
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   432
	fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   433
    done
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   434
    return 1
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   435
}
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
   436
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   437
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   438
# hbisect
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   439
_hg_cmd_bisect()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   440
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   441
    local i subcmd
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   442
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   443
    # find the sub-command
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   444
    for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   445
	if [[ ${COMP_WORDS[i]} != -* ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   446
	    if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   447
		subcmd="${COMP_WORDS[i]}"
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   448
		break
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   449
	    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   450
	fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   451
    done
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   452
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   453
    if [ -z "$subcmd" ] || [ $COMP_CWORD -eq $i ] || [ "$subcmd" = help ]; then
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
   454
	COMPREPLY=(${COMPREPLY[@]:-}
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   455
		   $(compgen -W 'bad good help init next reset' -- "$cur"))
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   456
	return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   457
    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   458
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   459
    case "$subcmd" in
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   460
	good|bad)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   461
	    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   462
	    _hg_branches
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   463
	    ;;
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   464
    esac
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   465
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   466
    return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   467
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   468
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   469
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   470
# patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   471
_hg_cmd_email()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   472
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   473
    case "$prev" in
3483
34cc82c6c7c2 bash_completion: email --bcc
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3482
diff changeset
   474
	-c|--cc|-t|--to|-f|--from|--bcc)
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
   475
	    # we need an e-mail address. let the user provide a function
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   476
	    # to get them
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   477
	    if [ "$(type -t _hg_emails)" = function ]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   478
		local arg=to
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   479
		if [[ "$prev" == @(-f|--from) ]]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   480
		    arg=from
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   481
		fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   482
		local addresses=$(_hg_emails $arg)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   483
		COMPREPLY=(${COMPREPLY[@]:-}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   484
			   $(compgen -W '$addresses' -- "$cur"))
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   485
	    fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   486
	    return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   487
	    ;;
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   488
	-m|--mbox)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   489
	    # fallback to standard filename completion
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   490
	    return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   491
	    ;;
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   492
	-s|--subject)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   493
	    # free form string
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   494
	    return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   495
	    ;;
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   496
    esac
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   497
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   498
    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   499
    _hg_branches
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   500
    return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   501
}
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   502
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   503
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   504
# gpg
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   505
_hg_cmd_sign()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   506
{
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   507
    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   508
    _hg_branches
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
   509
}
3993
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   510
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   511
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   512
# transplant
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   513
_hg_cmd_transplant()
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   514
{
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   515
    case "$prev" in
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   516
	-s|--source)
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   517
	    _hg_paths
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   518
	    _hg_repos
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   519
	    return
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   520
	    ;;
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   521
	--filter)
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   522
	    # standard filename completion
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   523
	    return
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   524
	    ;;
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   525
    esac
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   526
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   527
    # all other transplant options values and command parameters are revisions
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   528
    _hg_tags
8719
b5e9ed63913b Support branch names in contrib/bash_completion
Steve Losh <steve@stevelosh.com>
parents: 8718
diff changeset
   529
    _hg_branches
3993
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   530
    return
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   531
}
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
   532
9511
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   533
# shelve
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   534
_hg_shelves()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   535
{
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   536
    local shelves="$("$hg" unshelve -l . 2>/dev/null)"
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   537
    local IFS=$'\n'
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   538
    COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$shelves' -- "$cur"))
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   539
}
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   540
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   541
_hg_cmd_shelve()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   542
{
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   543
    _hg_status "mard"
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   544
}
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   545
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   546
_hg_cmd_unshelve()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   547
{
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   548
    _hg_shelves
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
   549
}