##// END OF EJS Templates
Use commit time instead of stat to check time of last change.
Use commit time instead of stat to check time of last change.

File last commit:

r1115:89f54e72 default
r1138:51f26e85 default
Show More
bash_completion
161 lines | 3.4 KiB | application/x-sh | BashLexer
mpm@selenic.com
bash_completion: add debugindex and debugdata support
r1115 #!/bin/bash
mpm@selenic.com
Add bash_completion to contrib...
r916 _hg_commands()
{
local commands="$(hg -v help | sed -e '1,/^list of commands:/d' \
TK Soh
bash_completion: support GNU sed 3 and non-GNU sed...
r952 -e '/^global options:/,$d' \
mpm@selenic.com
Add bash_completion to contrib...
r916 -e '/^ [^ ]/!d; s/[,:]//g;')"
# hide debug commands from users, but complete them if
# 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"
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
for f in $filters; do
if [[ ${COMP_WORDS[i-1]} == $f ]]; then
continue 2
fi
done
count=$(($count + 1))
fi
done
echo $(($count - 1))
}
_hg()
{
local cur prev cmd opts i
COMPREPLY=()
cur="$2"
prev="$3"
# searching for the command
# (first non-option argument that doesn't follow -R/--repository)
for (( i=1; $i<=$COMP_CWORD; i++ )); do
if [[ ${COMP_WORDS[i]} != -* ]] \
&& [ "${COMP_WORDS[i-1]}" != -R ] \
&& [ "${COMP_WORDS[i-1]}" != --repository ]; then
cmd="${COMP_WORDS[i]}"
break
fi
done
if [[ "$cur" == -* ]]; then
opts="$(hg -v help | sed -e '1,/^global options/d; /^ -/!d')"
if [ -n "$cmd" ]; then
opts="$opts $(hg help "$cmd" | sed -e '/^ -/!d; s/ [^-][^ ]*//')"
fi
COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$opts" -- "$cur") )
return
fi
if [ "$prev" = -R ] || [ "$prev" = --repository ]; then
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" ))
return
fi
if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
_hg_commands
return
fi
if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then
_hg_tags
return
fi
case "$cmd" in
help)
_hg_commands
;;
export|manifest|update|checkout|up|co)
_hg_tags
;;
mpm@selenic.com
Add some aliases
r1018 pull|push|outgoing|incoming|out|in)
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"
;;
mpm@selenic.com
Add some aliases
r1018 commit|ci)
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)
local count=$(_hg_count_non_option -o --output)
if [ $count = 2 ]; then
_hg_tags
else
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
fi
;;
*)
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
;;
esac
}
mpm@selenic.com
bash: Add smarter completion of add/commit/remove/forget/diff/revert...
r935 complete -o default -F _hg hg