aboutsummaryrefslogtreecommitdiff
path: root/bashrc
diff options
context:
space:
mode:
Diffstat (limited to 'bashrc')
-rw-r--r--bashrc36
1 files changed, 32 insertions, 4 deletions
diff --git a/bashrc b/bashrc
index ef4e60c..f36391e 100644
--- a/bashrc
+++ b/bashrc
@@ -10,14 +10,19 @@ if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
+# Source all completions
+if [ -d ~/.bash_completions ]; then
+ for F in $(find ~/.bash_completions -type f); do
+ . "$F"
+ done
+fi
+
+# PROMPT #######################################################
PS1='$(
if [ `id -u` -eq "0" ]; then
echo -n "\[\e[1;31m\]\u@\h:\[\e[1;34m\]\W\[\e[1;31m\]\$\[\e[0m\] "
else
- if ls ~/.annoyme/*.pid 2>/dev/null >/dev/null; then
- ANNOYME_PS="\[\e[1;31m\]!\[\e[0m\]"
- fi
- echo -n "$ANNOYME_PS\[\e[1;32m\]\u@\h:\[\e[1;34m\]\W\[\e[1;32m\]\$\[\e[0m\] "
+ echo -n "\[\e[1;32m\]\u@\h:\[\e[1;34m\]\W\[\e[1;32m\]\$\[\e[0m\] "
fi)'
PROMPT_COMMAND='
@@ -37,3 +42,26 @@ case "$TERM" in
;;
esac
+# Completions ##################################################
+
+_gitbmerge() {
+ local cur prev
+ _init_completion || return
+ [ $COMP_CWORD -gt 1 ] && return # Complete only single dependency
+ COMPREPLY=()
+ local GDIR="$(pwd)"
+ while [ ! -d "$GDIR/.git" ]; do
+ [ -z "$GDIR" ] && return
+ GDIR="${GDIR%/*}"
+ done
+ GDIR="$GDIR/.git"
+ [ -f "$GDIR" ] && GDIR="$(cat "$GDIR")" # This just points to some other directory
+ [ -d "$GDIR/refs/heads" ] || return # No completion if there is no local branch
+ local ops=""
+ for B in "$GDIR"/refs/heads/*; do
+ # TODO skip branch on HEAD
+ ops="$ops ${B#$GDIR/refs/heads/}"
+ done
+ COMPREPLY+=($(compgen -W "${ops}" -- ${cur}))
+}
+complete -F _gitbmerge gitbmerge