Mercurial > hg > mercurial-crew-with-dirclash
comparison contrib/bash_completion @ 1683:063e04831a09
Use user specified path to hg in bash_completion
e.g. for multiple installs with different versions or extensions.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Thu, 02 Feb 2006 07:50:20 +0100 |
parents | 747c8d03bd29 |
children | cf930b2452d3 |
comparison
equal
deleted
inserted
replaced
1682:ca1cda9220d5 | 1683:063e04831a09 |
---|---|
1 shopt -s extglob | 1 shopt -s extglob |
2 | 2 |
3 _hg_command_list() | 3 _hg_command_list() |
4 { | 4 { |
5 hg --debug help 2>/dev/null | \ | 5 "$hg" --debug help 2>/dev/null | \ |
6 awk 'function command_line(line) { | 6 awk 'function command_line(line) { |
7 gsub(/,/, "", line) | 7 gsub(/,/, "", line) |
8 gsub(/:.*/, "", line) | 8 gsub(/:.*/, "", line) |
9 split(line, aliases) | 9 split(line, aliases) |
10 command = aliases[1] | 10 command = aliases[1] |
22 | 22 |
23 } | 23 } |
24 | 24 |
25 _hg_option_list() | 25 _hg_option_list() |
26 { | 26 { |
27 hg -v help $1 2> /dev/null | \ | 27 "$hg" -v help $1 2> /dev/null | \ |
28 awk '/^ *-/ { | 28 awk '/^ *-/ { |
29 for (i = 1; i <= NF; i ++) { | 29 for (i = 1; i <= NF; i ++) { |
30 if (index($i, "-") != 1) | 30 if (index($i, "-") != 1) |
31 break; | 31 break; |
32 print $i; | 32 print $i; |
54 COMPREPLY=(${COMPREPLY[@]:-} $result) | 54 COMPREPLY=(${COMPREPLY[@]:-} $result) |
55 } | 55 } |
56 | 56 |
57 _hg_paths() | 57 _hg_paths() |
58 { | 58 { |
59 local paths="$(hg paths 2> /dev/null | sed -e 's/ = .*$//')" | 59 local paths="$("$hg" paths 2> /dev/null | sed -e 's/ = .*$//')" |
60 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W '$paths' -- "$cur" )) | 60 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W '$paths' -- "$cur" )) |
61 } | 61 } |
62 | 62 |
63 _hg_repos() | 63 _hg_repos() |
64 { | 64 { |
68 done | 68 done |
69 } | 69 } |
70 | 70 |
71 _hg_status() | 71 _hg_status() |
72 { | 72 { |
73 local files="$( hg status -n$1 . 2> /dev/null)" | 73 local files="$( "$hg" status -n$1 . 2> /dev/null)" |
74 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W '$files' -- "$cur" )) | 74 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W '$files' -- "$cur" )) |
75 } | 75 } |
76 | 76 |
77 _hg_tags() | 77 _hg_tags() |
78 { | 78 { |
79 local tags="$(hg tags 2> /dev/null | | 79 local tags="$("$hg" tags 2> /dev/null | |
80 sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')" | 80 sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')" |
81 COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W '$tags' -- "$cur") ) | 81 COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W '$tags' -- "$cur") ) |
82 } | 82 } |
83 | 83 |
84 # this is "kind of" ugly... | 84 # this is "kind of" ugly... |
102 _hg() | 102 _hg() |
103 { | 103 { |
104 local cur prev cmd opts i | 104 local cur prev cmd opts i |
105 # global options that receive an argument | 105 # global options that receive an argument |
106 local global_args='--cwd|-R|--repository' | 106 local global_args='--cwd|-R|--repository' |
107 local hg="$1" | |
107 | 108 |
108 COMPREPLY=() | 109 COMPREPLY=() |
109 cur="$2" | 110 cur="$2" |
110 prev="$3" | 111 prev="$3" |
111 | 112 |
144 _hg_commands | 145 _hg_commands |
145 return | 146 return |
146 fi | 147 fi |
147 | 148 |
148 # canonicalize command name | 149 # canonicalize command name |
149 cmd=$(hg -q help "$cmd" 2> /dev/null | sed -e 's/^hg //; s/ .*//; 1q') | 150 cmd=$("$hg" -q help "$cmd" 2> /dev/null | sed -e 's/^hg //; s/ .*//; 1q') |
150 | 151 |
151 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then | 152 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then |
152 _hg_tags | 153 _hg_tags |
153 return | 154 return |
154 fi | 155 fi |