35 lines
859 B
Bash
35 lines
859 B
Bash
# Branch: displays the current Git or Mercurial branch fast.
|
|
# Victor Torres <vpaivatorres@gmail.com>
|
|
# Oct 2, 2015
|
|
|
|
function branch_prompt_info() {
|
|
# Start checking in current working directory
|
|
local branch="" dir="$PWD"
|
|
while [[ "$dir" != '/' ]]; do
|
|
# Found .git directory
|
|
if [[ -d "${dir}/.git" ]]; then
|
|
branch="${"$(<"${dir}/.git/HEAD")"##*/}"
|
|
echo '±' "${branch:gs/%/%%}"
|
|
return
|
|
fi
|
|
|
|
# Found .hg directory
|
|
if [[ -d "${dir}/.hg" ]]; then
|
|
if [[ -f "${dir}/.hg/branch" ]]; then
|
|
branch="$(<"${dir}/.hg/branch")"
|
|
else
|
|
branch="default"
|
|
fi
|
|
|
|
if [[ -f "${dir}/.hg/bookmarks.current" ]]; then
|
|
branch="${branch}/$(<"${dir}/.hg/bookmarks.current")"
|
|
fi
|
|
|
|
echo '☿' "${branch:gs/%/%%}"
|
|
return
|
|
fi
|
|
|
|
# Check parent directory
|
|
dir="${dir:h}"
|
|
done
|
|
}
|