##// END OF EJS Templates
convert-repo: linearize the tag commit
convert-repo: linearize the tag commit

File last commit:

r1339:f351d1a0 default
r1387:0c7e8d34 default
Show More
bash_completion
171 lines | 3.7 KiB | application/x-sh | BashLexer
TK Soh
bash_completion: extended patterns require extglob option
r1311 shopt -s extglob
mpm@selenic.com
Add bash_completion to contrib...
r916 _hg_commands()
{
local commands="$(hg -v help | sed -e '1,/^list of commands:/d' \
Thomas Arendsen Hein
Cleanup of tabs and trailing spaces.
r1308 -e '/^global options:/,$d' \
mpm@selenic.com
Add bash_completion to contrib...
r916 -e '/^ [^ ]/!d; s/[,:]//g;')"
Thomas Arendsen Hein
Cleanup of tabs and trailing spaces.
r1308
# hide debug commands from users, but complete them if
mpm@selenic.com
Add bash_completion to contrib...
r916 # specifically asked for
if [[ "$cur" == de* ]]; then
commands="$commands debugcheckstate debugstate debugindex"
mpm@selenic.com
bash_completion: add debugindex and debugdata support
r1115 commands="$commands debugindexdot debugwalk debugdata"
Thomas Arendsen Hein
Added new debug commands to bash_completion.
r1263 commands="$commands debugancestor debugconfig debugrename"
mpm@selenic.com
Add bash_completion to contrib...
r916 fi
COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$commands" -- "$cur") )
}
_hg_paths()
{
local paths="$(hg paths | sed -e 's/ = .*$//')"
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$paths" -- "$cur" ))
}
mpm@selenic.com
bash: Add smarter completion of add/commit/remove/forget/diff/revert...
r935 _hg_status()
{
local files="$( hg status -$1 | cut -b 3- )"
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$files" -- "$cur" ))
}
mpm@selenic.com
Add bash_completion to contrib...
r916 _hg_tags()
{
local tags="$(hg tags | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')"
COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$tags" -- "$cur") )
}
# this is "kind of" ugly...
_hg_count_non_option()
{
local i count=0
local filters="$1"
for (( i=1; $i<=$COMP_CWORD; i++ )); do
if [[ "${COMP_WORDS[i]}" != -* ]]; then
Alexis S. L. Carvalho
bash_completion: small cleanup and bugfix...
r1152 if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then
continue
fi
mpm@selenic.com
Add bash_completion to contrib...
r916 count=$(($count + 1))
fi
done
echo $(($count - 1))
}
_hg()
{
local cur prev cmd opts i
Alexis S. L. Carvalho
teach bash_completion about --cwd
r1151 # global options that receive an argument
local global_args='--cwd|-R|--repository'
mpm@selenic.com
Add bash_completion to contrib...
r916
COMPREPLY=()
cur="$2"
prev="$3"
Thomas Arendsen Hein
Cleanup of tabs and trailing spaces.
r1308 # searching for the command
Alexis S. L. Carvalho
teach bash_completion about --cwd
r1151 # (first non-option argument that doesn't follow a global option that
# receives an argument)
mpm@selenic.com
Add bash_completion to contrib...
r916 for (( i=1; $i<=$COMP_CWORD; i++ )); do
Alexis S. L. Carvalho
teach bash_completion about --cwd
r1151 if [[ ${COMP_WORDS[i]} != -* ]]; then
if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
cmd="${COMP_WORDS[i]}"
break
fi
mpm@selenic.com
Add bash_completion to contrib...
r916 fi
done
if [[ "$cur" == -* ]]; then
Alexis S. L. Carvalho
bash_completion: update for new help output format
r1149 # this assumes that there are no commands with spaces in the name
opts=$(hg -v help $cmd | sed -e '/^ *-/!d; s/ [^- ].*//')
mpm@selenic.com
Add bash_completion to contrib...
r916
COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$opts" -- "$cur") )
return
fi
Alexis S. L. Carvalho
teach bash_completion about --cwd
r1151 # global options
case "$prev" in
-R|--repository)
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" ))
return
;;
--cwd)
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" ))
return
;;
esac
mpm@selenic.com
Add bash_completion to contrib...
r916
if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
_hg_commands
return
fi
Alexis S. L. Carvalho
bash_completion: better handling of aliases...
r1150 # canonicalize command name
cmd=$(hg -q help "$cmd" | sed -e 's/^hg //; s/ .*//; 1q')
mpm@selenic.com
Add bash_completion to contrib...
r916 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then
_hg_tags
return
fi
case "$cmd" in
help)
_hg_commands
;;
Alexis S. L. Carvalho
bash_completion: better handling of aliases...
r1150 export|manifest|update)
mpm@selenic.com
Add bash_completion to contrib...
r916 _hg_tags
;;
Alexis S. L. Carvalho
bash_completion: better handling of aliases...
r1150 pull|push|outgoing|incoming)
mpm@selenic.com
Add bash_completion to contrib...
r916 _hg_paths
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" ))
;;
paths)
_hg_paths
;;
mpm@selenic.com
bash: Add smarter completion of add/commit/remove/forget/diff/revert...
r935 add)
_hg_status "u"
;;
Alexis S. L. Carvalho
bash_completion: better handling of aliases...
r1150 commit)
mpm@selenic.com
bash: Add smarter completion of add/commit/remove/forget/diff/revert...
r935 _hg_status "mra"
;;
remove)
_hg_status "r"
;;
forget)
_hg_status "a"
;;
diff)
_hg_status "mra"
;;
revert)
_hg_status "mra"
;;
mpm@selenic.com
Add bash_completion to contrib...
r916 clone)
local count=$(_hg_count_non_option)
if [ $count = 1 ]; then
_hg_paths
fi
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" ))
;;
mpm@selenic.com
bash_completion: add debugindex and debugdata support
r1115 debugindex|debugindexdot)
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -X "!*.i" -- "$cur" ))
;;
debugdata)
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -X "!*.d" -- "$cur" ))
;;
mpm@selenic.com
Add bash_completion to contrib...
r916 cat)
Alexis S. L. Carvalho
bash_completion: small cleanup and bugfix...
r1152 local count=$(_hg_count_non_option '-o|--output')
mpm@selenic.com
Add bash_completion to contrib...
r916 if [ $count = 2 ]; then
_hg_tags
else
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
fi
;;
Thomas Arendsen Hein
Cleanup of tabs and trailing spaces.
r1308 *)
mpm@selenic.com
Add bash_completion to contrib...
r916 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
;;
esac
}
Alexis S. L. Carvalho
bash_completion: try to use bash3 features if they're available...
r1153 complete -o bashdefault -o default -F _hg hg 2> /dev/null \
|| complete -o default -F _hg hg