summarylogtreecommitdiffstats
path: root/fossil-autocomplete.bash
diff options
context:
space:
mode:
Diffstat (limited to 'fossil-autocomplete.bash')
-rw-r--r--fossil-autocomplete.bash33
1 files changed, 33 insertions, 0 deletions
diff --git a/fossil-autocomplete.bash b/fossil-autocomplete.bash
new file mode 100644
index 000000000000..4e0312672365
--- /dev/null
+++ b/fossil-autocomplete.bash
@@ -0,0 +1,33 @@
+# Command name bash completion for Fossil.
+# Original: Mailing-list contribution by Stuart Rackham.
+# Maintainer: Daniel YC Lin <dlin.tw at gmail.com>
+# I'm not bash expert, please feed back to me, if you could improve this.
+# TODO: fossil branch list --options
+
+function _fossil() {
+ local cur commands
+ cur=${COMP_WORDS[COMP_CWORD]}
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ commands=$(fossil help --all)
+ if [ $COMP_CWORD -eq 1 ] || [ ${COMP_WORDS[1]} = help ]; then
+ # Command name completion for 1st argument or 2nd if help command.
+ COMPREPLY=( $(compgen -W "$commands" $cur) )
+ else
+ case "${prev}" in
+ add) opts="--case-sensitive --dotfiles --force --ignore --clean" ;;
+ addremove) opts="--case-sensitive --dotfiles --ignore --clean --dry-run" ;;
+ all) opts="changes clean dbstat extras ignore info list pull push rebuild sync setting set unset" ;;
+ annotate) opts="--filevers --log --limit --ignore-all-space --ignore-trailing-space" ;;
+ bisect) opts="bad good log chart next options reset status undo" ;;
+ branch) opts="new list" ;;
+ merge) opts="--baseline --binary --case-sensitive --force --force-missing --integrate --dry-run --verbose" ;;
+ esac
+ compopt -o filenames
+ COMPREPLY=($(compgen -fW "${opts}" -- "${cur}") \
+ $(compgen -d -- "$cur"))
+ # File name completion for other arguments.
+ #COMPREPLY=( $(compgen -f $cur) )
+ fi
+}
+complete -o default -F _fossil fossil f
+# vim: et sw=4 ts=4