Merge branch 'develop'
This commit is contained in:
commit
516f982f82
18
README.md
18
README.md
@ -65,9 +65,10 @@ changes have been made and the number of pending commits, if any;
|
|||||||
* a red star if there is some untracked files in the repository;
|
* a red star if there is some untracked files in the repository;
|
||||||
* the error code of the last command, if it has failed in some way;
|
* the error code of the last command, if it has failed in some way;
|
||||||
* a smart mark: ± for git directories, ☿ for mercurial, ‡ for svn, ⌘
|
* a smart mark: ± for git directories, ☿ for mercurial, ‡ for svn, ⌘
|
||||||
for fossil, $ for simple user, a red # for root.
|
for fossil, $ for simple user, a red # for root;
|
||||||
* if you ask for, the liquidprompt will be replicated in your terminal window's
|
* if you ask for, the liquidprompt will be replicated in your terminal window's
|
||||||
title (without the colors)
|
title (without the colors);
|
||||||
|
* you can easily add a prefix tag to your prompt, by invoking `lptag MYTAG`.
|
||||||
|
|
||||||
You can temporarily deactivate the liquid prompt and come back to your previous
|
You can temporarily deactivate the liquid prompt and come back to your previous
|
||||||
one by typing `prompt_off`. Use `prompt_on` to bring it back. You can deactivate
|
one by typing `prompt_off`. Use `prompt_on` to bring it back. You can deactivate
|
||||||
@ -157,6 +158,13 @@ You can prefix the `LP_PS1` variable with anything you want using the
|
|||||||
|
|
||||||
LP_PS1_PREFIX="\[\e]0;\u@\h: \w\a\]"
|
LP_PS1_PREFIX="\[\e]0;\u@\h: \w\a\]"
|
||||||
|
|
||||||
|
Note: the `lptag` function is convenient way to add a prefix. You can thus add
|
||||||
|
a keyword to your different terminals:
|
||||||
|
|
||||||
|
[:~/code/liquidprompt] develop ± lptag mycode
|
||||||
|
mycode [:~/code/liquidprompt] develop ±
|
||||||
|
|
||||||
|
|
||||||
### PUT THE PROMPT IN A DIFFERENT ORDER
|
### PUT THE PROMPT IN A DIFFERENT ORDER
|
||||||
|
|
||||||
You can sort what you want to see by sourcing your favorite template file
|
You can sort what you want to see by sourcing your favorite template file
|
||||||
@ -174,10 +182,7 @@ Available features:
|
|||||||
* `LP_PERM` a colon ":"
|
* `LP_PERM` a colon ":"
|
||||||
* `LP_PWD` current working directory
|
* `LP_PWD` current working directory
|
||||||
* `LP_PROXY` HTTP proxy
|
* `LP_PROXY` HTTP proxy
|
||||||
* `LP_GIT` git
|
* `LP_VCS` informations concerning the current working repository
|
||||||
* `LP_HG` mercurial
|
|
||||||
* `LP_SVN` subversion
|
|
||||||
* `LP_FOSSIL` fossil
|
|
||||||
* `LP_ERR` last error code
|
* `LP_ERR` last error code
|
||||||
* `LP_MARK` prompt mark
|
* `LP_MARK` prompt mark
|
||||||
* `LP_TITLE` the prompt as a window's title escaped sequence
|
* `LP_TITLE` the prompt as a window's title escaped sequence
|
||||||
@ -195,6 +200,7 @@ To erase your new formatting, just bring the `LP_PS1` to a null string:
|
|||||||
export LP_PS1=""
|
export LP_PS1=""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## THEMES
|
## THEMES
|
||||||
|
|
||||||
You can change the colors and special characters of some part of the liquid
|
You can change the colors and special characters of some part of the liquid
|
||||||
|
BIN
demo.png
BIN
demo.png
Binary file not shown.
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 129 KiB |
@ -12,9 +12,7 @@
|
|||||||
# LP_PERM a colon ":"
|
# LP_PERM a colon ":"
|
||||||
# LP_PWD current working directory
|
# LP_PWD current working directory
|
||||||
# LP_PROXY HTTP proxy
|
# LP_PROXY HTTP proxy
|
||||||
# LP_GIT git
|
# LP_VCS the content of the current repository
|
||||||
# LP_HG mercurial
|
|
||||||
# LP_SVN subversion
|
|
||||||
# LP_ERR last error code
|
# LP_ERR last error code
|
||||||
# LP_MARK prompt mark
|
# LP_MARK prompt mark
|
||||||
# LP_TIME current time
|
# LP_TIME current time
|
||||||
@ -34,13 +32,12 @@ then
|
|||||||
# path in foreground color
|
# path in foreground color
|
||||||
LP_PS1="${LP_PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
LP_PS1="${LP_PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
||||||
# add VCS infos
|
# add VCS infos
|
||||||
LP_PS1="${LP_PS1}${LP_GIT}${LP_HG}${LP_SVN}${LP_FOSSIL}"
|
LP_PS1="${LP_PS1}${LP_VCS}"
|
||||||
else
|
else
|
||||||
# path in yellow
|
# path in yellow
|
||||||
LP_PS1="${LP_PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
LP_PS1="${LP_PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
||||||
# do not add VCS infos unless told otherwise (LP_ENABLE_VCS_ROOT)
|
# do not add VCS infos unless told otherwise (LP_ENABLE_VCS_ROOT)
|
||||||
[[ "$LP_ENABLE_VCS_ROOT" = "1" ]] && \
|
[[ "$LP_ENABLE_VCS_ROOT" = "1" ]] && LP_PS1="${LP_PS1}${LP_VCS}"
|
||||||
LP_PS1="${LP_PS1}${LP_GIT}${LP_HG}${LP_SVN}${LP_FOSSIL}"
|
|
||||||
fi
|
fi
|
||||||
# add return code and prompt mark
|
# add return code and prompt mark
|
||||||
LP_PS1="${LP_PS1}${LP_ERR}${LP_MARK}"
|
LP_PS1="${LP_PS1}${LP_ERR}${LP_MARK}"
|
||||||
|
241
liquidprompt
241
liquidprompt
@ -35,6 +35,7 @@
|
|||||||
# Luc Didry <luc@fiat-tux.fr> # Zsh port
|
# Luc Didry <luc@fiat-tux.fr> # Zsh port
|
||||||
# Olivier Mengué <dolmen@cpan.org> # Major optimizations on host parsing
|
# Olivier Mengué <dolmen@cpan.org> # Major optimizations on host parsing
|
||||||
# Frédéric Lepied # Python virtual env
|
# Frédéric Lepied # Python virtual env
|
||||||
|
# Clément MATHIEU # Bazaar support
|
||||||
|
|
||||||
# See the README.md file for a summary of features.
|
# See the README.md file for a summary of features.
|
||||||
|
|
||||||
@ -52,12 +53,14 @@ if test -n "$BASH_VERSION" -a -n "$PS1" -a -n "$TERM" ; then
|
|||||||
_LP_CLOSE_ESC="\]"
|
_LP_CLOSE_ESC="\]"
|
||||||
_LP_USER_SYMBOL="\u"
|
_LP_USER_SYMBOL="\u"
|
||||||
_LP_HOST_SYMBOL="\h"
|
_LP_HOST_SYMBOL="\h"
|
||||||
|
_LP_TIME_SYMBOL="\\\\t"
|
||||||
elif test -n "$ZSH_VERSION" ; then
|
elif test -n "$ZSH_VERSION" ; then
|
||||||
_LP_WORKING_SHELL=zsh
|
_LP_WORKING_SHELL=zsh
|
||||||
_LP_OPEN_ESC="%{"
|
_LP_OPEN_ESC="%{"
|
||||||
_LP_CLOSE_ESC="%}"
|
_LP_CLOSE_ESC="%}"
|
||||||
_LP_USER_SYMBOL="%n"
|
_LP_USER_SYMBOL="%n"
|
||||||
_LP_HOST_SYMBOL="%m"
|
_LP_HOST_SYMBOL="%m"
|
||||||
|
_LP_TIME_SYMBOL="%*"
|
||||||
else
|
else
|
||||||
echo "liquidprompt: shell not supported" >&2
|
echo "liquidprompt: shell not supported" >&2
|
||||||
return
|
return
|
||||||
@ -107,6 +110,7 @@ case "$LP_OS" in
|
|||||||
load=$(LANG=C sysctl -n vm.loadavg | awk '{print $2}')
|
load=$(LANG=C sysctl -n vm.loadavg | awk '{print $2}')
|
||||||
echo "$load"
|
echo "$load"
|
||||||
}
|
}
|
||||||
|
LP_DWIN_KERNEL_REL_VER=$(uname -r | cut -d . -f 1)
|
||||||
;;
|
;;
|
||||||
SunOS)
|
SunOS)
|
||||||
_lp_cpu_load () {
|
_lp_cpu_load () {
|
||||||
@ -204,10 +208,12 @@ _lp_source_config()
|
|||||||
LP_ENABLE_SVN=${LP_ENABLE_SVN:-1}
|
LP_ENABLE_SVN=${LP_ENABLE_SVN:-1}
|
||||||
LP_ENABLE_FOSSIL=${LP_ENABLE_FOSSIL:-1}
|
LP_ENABLE_FOSSIL=${LP_ENABLE_FOSSIL:-1}
|
||||||
LP_ENABLE_HG=${LP_ENABLE_HG:-1}
|
LP_ENABLE_HG=${LP_ENABLE_HG:-1}
|
||||||
|
LP_ENABLE_BZR=${LP_ENABLE_BZR:-1}
|
||||||
LP_ENABLE_TIME=${LP_ENABLE_TIME:-0}
|
LP_ENABLE_TIME=${LP_ENABLE_TIME:-0}
|
||||||
LP_ENABLE_VIRTUALENV=${LP_ENABLE_VIRTUALENV:-1}
|
LP_ENABLE_VIRTUALENV=${LP_ENABLE_VIRTUALENV:-1}
|
||||||
LP_ENABLE_VCS_ROOT=${LP_ENABLE_VCS_ROOT:-0}
|
LP_ENABLE_VCS_ROOT=${LP_ENABLE_VCS_ROOT:-0}
|
||||||
LP_ENABLE_TITLE=${LP_ENABLE_TITLE:-0}
|
LP_ENABLE_TITLE=${LP_ENABLE_TITLE:-0}
|
||||||
|
LP_DISABLED_VCS_PATH=${LP_DISABLED_VCS_PATH:-""}
|
||||||
|
|
||||||
LP_MARK_BATTERY=${LP_MARK_BATTERY:-"⌁"}
|
LP_MARK_BATTERY=${LP_MARK_BATTERY:-"⌁"}
|
||||||
LP_MARK_ADAPTER=${LP_MARK_ADAPTER:-"⏚"}
|
LP_MARK_ADAPTER=${LP_MARK_ADAPTER:-"⏚"}
|
||||||
@ -217,6 +223,7 @@ _lp_source_config()
|
|||||||
LP_MARK_SVN=${LP_MARK_SVN:-"‡"}
|
LP_MARK_SVN=${LP_MARK_SVN:-"‡"}
|
||||||
LP_MARK_GIT=${LP_MARK_GIT:-"±"}
|
LP_MARK_GIT=${LP_MARK_GIT:-"±"}
|
||||||
LP_MARK_FOSSIL=${LP_MARK_FOSSIL:-"⌘"}
|
LP_MARK_FOSSIL=${LP_MARK_FOSSIL:-"⌘"}
|
||||||
|
LP_MARK_BZR=${LP_MARK_BZR:-"⚯"}
|
||||||
LP_MARK_UNTRACKED=${LP_MARK_UNTRACKED:-"*"}
|
LP_MARK_UNTRACKED=${LP_MARK_UNTRACKED:-"*"}
|
||||||
LP_MARK_STASH=${LP_MARK_STASH:-"+"}
|
LP_MARK_STASH=${LP_MARK_STASH:-"+"}
|
||||||
|
|
||||||
@ -292,6 +299,7 @@ unset _lp_source_config
|
|||||||
[[ "$LP_ENABLE_SVN" = 1 ]] && { command -v svn >/dev/null || LP_ENABLE_SVN=0 ; }
|
[[ "$LP_ENABLE_SVN" = 1 ]] && { command -v svn >/dev/null || LP_ENABLE_SVN=0 ; }
|
||||||
[[ "$LP_ENABLE_FOSSIL" = 1 ]] && { command -v fossil >/dev/null || LP_ENABLE_FOSSIL=0 ; }
|
[[ "$LP_ENABLE_FOSSIL" = 1 ]] && { command -v fossil >/dev/null || LP_ENABLE_FOSSIL=0 ; }
|
||||||
[[ "$LP_ENABLE_HG" = 1 ]] && { command -v hg >/dev/null || LP_ENABLE_HG=0 ; }
|
[[ "$LP_ENABLE_HG" = 1 ]] && { command -v hg >/dev/null || LP_ENABLE_HG=0 ; }
|
||||||
|
[[ "$LP_ENABLE_BZR" = 1 ]] && { command -v bzr > /dev/null || LP_ENABLE_BZR=0 ; }
|
||||||
[[ "$LP_ENABLE_BATT" = 1 ]] && { command -v acpi >/dev/null || LP_ENABLE_BATT=0 ; }
|
[[ "$LP_ENABLE_BATT" = 1 ]] && { command -v acpi >/dev/null || LP_ENABLE_BATT=0 ; }
|
||||||
|
|
||||||
|
|
||||||
@ -301,27 +309,20 @@ unset _lp_source_config
|
|||||||
###############
|
###############
|
||||||
|
|
||||||
# Yellow for root, bold if the user is not the login one, else no color.
|
# Yellow for root, bold if the user is not the login one, else no color.
|
||||||
_lp_user()
|
if [[ "$EUID" -ne "0" ]] ; then # if user is not root
|
||||||
{
|
# if user is not login user
|
||||||
local user
|
if [[ ${USER} != "$(logname 2>/dev/null)" ]]; then
|
||||||
# if user is not root
|
LP_USER="${LP_COLOR_USER_ALT}${_LP_USER_SYMBOL}${NO_COL}"
|
||||||
if [[ "$EUID" -ne "0" ]] ; then
|
|
||||||
# if user is not login user
|
|
||||||
if [[ ${USER} != "$(logname 2>/dev/null)" ]]; then
|
|
||||||
user="${LP_COLOR_USER_ALT}${_LP_USER_SYMBOL}${NO_COL}"
|
|
||||||
else
|
|
||||||
if [[ "${LP_USER_ALWAYS}" -ne "0" ]] ; then
|
|
||||||
user="${LP_COLOR_USER_LOGGED}${_LP_USER_SYMBOL}${NO_COL}"
|
|
||||||
else
|
|
||||||
user=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
user="${LP_COLOR_USER_ROOT}${_LP_USER_SYMBOL}${NO_COL}"
|
if [[ "${LP_USER_ALWAYS}" -ne "0" ]] ; then
|
||||||
|
LP_USER="${LP_COLOR_USER_LOGGED}${_LP_USER_SYMBOL}${NO_COL}"
|
||||||
|
else
|
||||||
|
LP_USER=""
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
echo -ne $user
|
LP_USER="${LP_COLOR_USER_ROOT}${_LP_USER_SYMBOL}${NO_COL}"
|
||||||
}
|
fi
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@ -371,7 +372,7 @@ case "$(_lp_connection)" in
|
|||||||
lcl)
|
lcl)
|
||||||
if [[ "${LP_HOSTNAME_ALWAYS}" -eq "0" ]] ; then
|
if [[ "${LP_HOSTNAME_ALWAYS}" -eq "0" ]] ; then
|
||||||
# FIXME do we want to display the chroot if local?
|
# FIXME do we want to display the chroot if local?
|
||||||
LP_HOST="${NO_COL}" # no hostname if local
|
LP_HOST="" # no hostname if local
|
||||||
else
|
else
|
||||||
LP_HOST="${LP_HOST}${LP_COLOR_HOST}${_LP_HOST_SYMBOL}${NO_COL}"
|
LP_HOST="${LP_HOST}${LP_COLOR_HOST}${_LP_HOST_SYMBOL}${NO_COL}"
|
||||||
fi
|
fi
|
||||||
@ -397,7 +398,7 @@ _lp_proxy()
|
|||||||
[[ "$LP_ENABLE_PROXY" != 1 ]] && return
|
[[ "$LP_ENABLE_PROXY" != 1 ]] && return
|
||||||
|
|
||||||
if [[ ! -z "$http_proxy" ]] ; then
|
if [[ ! -z "$http_proxy" ]] ; then
|
||||||
echo -ne $LP_MARK_PROXY
|
echo -ne "$LP_COLOR_PROXY$LP_MARK_PROXY$NO_COL"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -552,7 +553,7 @@ _lp_permissions_color()
|
|||||||
_lp_virtualenv()
|
_lp_virtualenv()
|
||||||
{
|
{
|
||||||
[[ "$LP_ENABLE_VIRTUALENV" != 1 ]] && return
|
[[ "$LP_ENABLE_VIRTUALENV" != 1 ]] && return
|
||||||
[[ -n "$VIRTUAL_ENV" ]] && echo "[$(basename \"$VIRTUAL_ENV\")]"
|
[[ -n "$VIRTUAL_ENV" ]] && echo "[$(basename $VIRTUAL_ENV)]"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -577,31 +578,31 @@ _lp_jobcount_color()
|
|||||||
|
|
||||||
# d/&/z
|
# d/&/z
|
||||||
if [[ $screens != "0" && $running != "0" && $stopped != "0" ]] ; then
|
if [[ $screens != "0" && $running != "0" && $stopped != "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
rep="${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
||||||
|
|
||||||
# _/&/_
|
# _/&/_
|
||||||
elif [[ $screens == "0" && $running != "0" && $stopped == "0" ]] ; then
|
elif [[ $screens == "0" && $running != "0" && $stopped == "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}"
|
rep="${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}"
|
||||||
|
|
||||||
# _/_/z
|
# _/_/z
|
||||||
elif [[ $screens == "0" && $running == "0" && $stopped != "0" ]] ; then
|
elif [[ $screens == "0" && $running == "0" && $stopped != "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
rep="${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
||||||
|
|
||||||
# d/_/_
|
# d/_/_
|
||||||
elif [[ $screens != "0" && $running == "0" && $stopped == "0" ]] ; then
|
elif [[ $screens != "0" && $running == "0" && $stopped == "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}"
|
rep="${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}"
|
||||||
|
|
||||||
# d/&/_
|
# d/&/_
|
||||||
elif [[ $screens != "0" && $running != "0" && $stopped == "0" ]] ; then
|
elif [[ $screens != "0" && $running != "0" && $stopped == "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}"
|
rep="${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}"
|
||||||
|
|
||||||
# d/_/z
|
# d/_/z
|
||||||
elif [[ $screens != "0" && $running == "0" && $stopped != "0" ]] ; then
|
elif [[ $screens != "0" && $running == "0" && $stopped != "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
rep="${LP_COLOR_JOB_D}${screens}${m_detached}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
||||||
|
|
||||||
# _/&/z
|
# _/&/z
|
||||||
elif [[ $screens == "0" && $running != "0" && $stopped != "0" ]] ; then
|
elif [[ $screens == "0" && $running != "0" && $stopped != "0" ]] ; then
|
||||||
rep="${NO_COL}${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
rep="${LP_COLOR_JOB_R}${running}${m_run}${NO_COL}/${LP_COLOR_JOB_Z}${stopped}${m_stop}${NO_COL}"
|
||||||
fi
|
fi
|
||||||
echo -ne "$rep"
|
echo -ne "$rep"
|
||||||
}
|
}
|
||||||
@ -611,7 +612,7 @@ _lp_return_value()
|
|||||||
{
|
{
|
||||||
if [[ "$1" -ne "0" ]]
|
if [[ "$1" -ne "0" ]]
|
||||||
then
|
then
|
||||||
echo -ne "$1"
|
echo -ne "$LP_COLOR_ERR$1$NO_COL"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -620,13 +621,26 @@ _lp_return_value()
|
|||||||
# VCS branch display #
|
# VCS branch display #
|
||||||
######################
|
######################
|
||||||
|
|
||||||
|
_lp_are_vcs_disabled()
|
||||||
|
{
|
||||||
|
[[ -z "$LP_DISABLED_VCS_PATH" ]] && echo 0 && return
|
||||||
|
local path
|
||||||
|
local IFS=:
|
||||||
|
for path in $LP_DISABLED_VCS_PATH; do
|
||||||
|
if [[ "$PWD" == *"$path"* ]]; then
|
||||||
|
echo 1
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo 0
|
||||||
|
}
|
||||||
|
|
||||||
# GIT #
|
# GIT #
|
||||||
|
|
||||||
# Get the branch name of the current directory
|
# Get the branch name of the current directory
|
||||||
_lp_git_branch()
|
_lp_git_branch()
|
||||||
{
|
{
|
||||||
[[ "$LP_ENABLE_GIT" != 1 ]] && return
|
[[ "$LP_ENABLE_GIT" != 1 ]] && return
|
||||||
|
|
||||||
local gitdir="$(git rev-parse --git-dir 2>/dev/null)"
|
local gitdir="$(git rev-parse --git-dir 2>/dev/null)"
|
||||||
[[ $? -ne 0 || "${gitdir##*/}" != .git ]] && return
|
[[ $? -ne 0 || "${gitdir##*/}" != .git ]] && return
|
||||||
local branch="$(git symbolic-ref HEAD 2>/dev/null)"
|
local branch="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||||
@ -660,14 +674,14 @@ _lp_git_branch_color()
|
|||||||
if [[ -z "$has_untracked" ]] ; then
|
if [[ -z "$has_untracked" ]] ; then
|
||||||
has_untracked=""
|
has_untracked=""
|
||||||
else
|
else
|
||||||
has_untracked="$LP_MARK_UNTRACKED"
|
has_untracked="$LP_COLOR_CHANGES$LP_MARK_UNTRACKED"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local has_stash=$(git stash list 2>/dev/null)
|
local has_stash=$(git stash list 2>/dev/null)
|
||||||
if [[ -z "$has_stash" ]] ; then
|
if [[ -z "$has_stash" ]] ; then
|
||||||
has_stash=""
|
has_stash=""
|
||||||
else
|
else
|
||||||
has_stash="$LP_MARK_STASH"
|
has_stash="$LP_COLOR_COMMITS$LP_MARK_STASH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local has_commit
|
local has_commit
|
||||||
@ -680,16 +694,16 @@ _lp_git_branch_color()
|
|||||||
has_lines=$(git diff --numstat 2>/dev/null | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d/-%d\n", plus, minus)}')
|
has_lines=$(git diff --numstat 2>/dev/null | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d/-%d\n", plus, minus)}')
|
||||||
if [[ "$has_commit" -gt "0" ]] ; then
|
if [[ "$has_commit" -gt "0" ]] ; then
|
||||||
# Changes to commit and commits to push
|
# Changes to commit and commits to push
|
||||||
ret="${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_DIFF}$has_lines${NO_COL},${LP_COLOR_COMMITS}$has_commit${NO_COL})${LP_COLOR_COMMITS}${has_stash}${LP_COLOR_CHANGES}${has_untracked}${NO_COL}"
|
ret="${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_DIFF}$has_lines${NO_COL},${LP_COLOR_COMMITS}$has_commit${NO_COL})${has_stash}${has_untracked}${NO_COL}"
|
||||||
else
|
else
|
||||||
ret="${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_DIFF}$has_lines${NO_COL})${LP_COLOR_COMMITS}${has_stash}${LP_COLOR_CHANGES}${has_untracked}${NO_COL}" # changes to commit
|
ret="${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_DIFF}$has_lines${NO_COL})${has_stash}${has_untracked}${NO_COL}" # changes to commit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ "$has_commit" -gt "0" ]] ; then
|
if [[ "$has_commit" -gt "0" ]] ; then
|
||||||
# some commit(s) to push
|
# some commit(s) to push
|
||||||
ret="${LP_COLOR_COMMITS}${branch}${NO_COL}(${LP_COLOR_COMMITS}$has_commit${NO_COL})${LP_COLOR_COMMITS}${LP_COLOR_COMMITS}${has_stash}${LP_COLOR_CHANGES}${has_untracked}${NO_COL}"
|
ret="${LP_COLOR_COMMITS}${branch}${NO_COL}(${LP_COLOR_COMMITS}$has_commit${NO_COL})${has_stash}${has_untracked}${NO_COL}"
|
||||||
else
|
else
|
||||||
ret="${LP_COLOR_UP}${branch}${LP_COLOR_COMMITS}${has_stash}${LP_COLOR_CHANGES}${has_untracked}${NO_COL}" # nothing to commit or push
|
ret="${LP_COLOR_UP}${branch}${has_stash}${has_untracked}${NO_COL}" # nothing to commit or push
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo -ne "$ret"
|
echo -ne "$ret"
|
||||||
@ -703,7 +717,6 @@ _lp_git_branch_color()
|
|||||||
_lp_hg_branch()
|
_lp_hg_branch()
|
||||||
{
|
{
|
||||||
[[ "$LP_ENABLE_HG" != 1 ]] && return
|
[[ "$LP_ENABLE_HG" != 1 ]] && return
|
||||||
|
|
||||||
local branch
|
local branch
|
||||||
branch="$(hg branch 2>/dev/null)"
|
branch="$(hg branch 2>/dev/null)"
|
||||||
[[ $? -eq 0 ]] && echo "$branch"
|
[[ $? -eq 0 ]] && echo "$branch"
|
||||||
@ -766,11 +779,11 @@ _lp_svn_branch_color()
|
|||||||
branch="$(_lp_svn_branch)"
|
branch="$(_lp_svn_branch)"
|
||||||
if [[ -n "$branch" ]] ; then
|
if [[ -n "$branch" ]] ; then
|
||||||
local commits
|
local commits
|
||||||
commits=$(( $(svn status $LP_SVN_STATUS_OPTIONS | grep -c -v "?") ))
|
changes=$(( $(svn status $LP_SVN_STATUS_OPTIONS | grep -c -v "?") ))
|
||||||
if [[ $commits -eq 0 ]] ; then
|
if [[ $changes -eq 0 ]] ; then
|
||||||
echo "${LP_COLOR_UP}${branch}${NO_COL}"
|
echo "${LP_COLOR_UP}${branch}${NO_COL}"
|
||||||
else
|
else
|
||||||
echo "${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_COMMITS}$commits${NO_COL})" # changes to commit
|
echo "${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_DIFF}$changes${NO_COL})" # changes to commit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -782,7 +795,6 @@ _lp_svn_branch_color()
|
|||||||
_lp_fossil_branch()
|
_lp_fossil_branch()
|
||||||
{
|
{
|
||||||
[[ "$LP_ENABLE_FOSSIL" != 1 ]] && return
|
[[ "$LP_ENABLE_FOSSIL" != 1 ]] && return
|
||||||
|
|
||||||
local branch
|
local branch
|
||||||
branch=$(fossil status 2>/dev/null | grep tags: | cut -c17-)
|
branch=$(fossil status 2>/dev/null | grep tags: | cut -c17-)
|
||||||
if [[ -n "$branch" ]] ; then
|
if [[ -n "$branch" ]] ; then
|
||||||
@ -859,6 +871,44 @@ _lp_fossil_branch_color()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Bazaar #
|
||||||
|
|
||||||
|
# Get the branch name of the current directory
|
||||||
|
_lp_bzr_branch()
|
||||||
|
{
|
||||||
|
[[ "$LP_ENABLE_BZR" != 1 ]] && return
|
||||||
|
local output=$(bzr nick 2> /dev/null)
|
||||||
|
[[ $? -ne 0 ]] && return
|
||||||
|
echo "$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Set a color depending on the branch state:
|
||||||
|
# - green if the repository is up to date
|
||||||
|
# - red if there is changes to commit
|
||||||
|
# - TODO: yellow if there is some commits not pushed
|
||||||
|
#
|
||||||
|
# Add the number of pending commits and the impacted lines.
|
||||||
|
_lp_bzr_branch_color()
|
||||||
|
{
|
||||||
|
[[ "$LP_ENABLE_BZR" != 1 ]] && return
|
||||||
|
local output=$(bzr version-info --check-clean --custom --template='{branch_nick} {revno} {clean}' 2> /dev/null)
|
||||||
|
local tuple=($output)
|
||||||
|
local branch=${tuple[0]}
|
||||||
|
local revno=${tuple[1]}
|
||||||
|
local clean=${tuple[2]}
|
||||||
|
|
||||||
|
if [[ ! -z "$branch" ]] ; then
|
||||||
|
if [[ "$clean" -eq 0 ]] ; then
|
||||||
|
ret="${LP_COLOR_CHANGES}${branch}${NO_COL}(${LP_COLOR_COMMITS}$revno${NO_COL})"
|
||||||
|
else
|
||||||
|
ret="${LP_COLOR_UP}${branch}${NO_COL}(${LP_COLOR_COMMITS}$revno${NO_COL})"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
echo -ne "$ret"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# Battery status #
|
# Battery status #
|
||||||
@ -1005,7 +1055,7 @@ _lp_load_color()
|
|||||||
if [[ $load -ge $LP_LOAD_THRESHOLD ]]
|
if [[ $load -ge $LP_LOAD_THRESHOLD ]]
|
||||||
then
|
then
|
||||||
local ret
|
local ret
|
||||||
ret="${LP_MARK_LOAD}${NO_COL}"
|
ret="${LP_MARK_LOAD}"
|
||||||
if [[ $load -ge 0 ]] && [[ $load -lt 20 ]] ; then
|
if [[ $load -ge 0 ]] && [[ $load -lt 20 ]] ; then
|
||||||
ret="${ret}${LP_COLORMAP_0}"
|
ret="${ret}${LP_COLORMAP_0}"
|
||||||
elif [[ $load -ge 20 ]] && [[ $load -lt 40 ]] ; then
|
elif [[ $load -ge 20 ]] && [[ $load -lt 40 ]] ; then
|
||||||
@ -1089,14 +1139,16 @@ _lp_smart_mark()
|
|||||||
if [[ "$_LP_WORKING_SHELL" == "zsh" ]]; then
|
if [[ "$_LP_WORKING_SHELL" == "zsh" ]]; then
|
||||||
mark="%(!.#.%%)"
|
mark="%(!.#.%%)"
|
||||||
fi
|
fi
|
||||||
if [[ ! -z $(_lp_git_branch) ]] ; then
|
if [[ "$1" == "git" ]]; then
|
||||||
mark=$LP_MARK_GIT
|
mark=$LP_MARK_GIT
|
||||||
elif [[ ! -z $(_lp_hg_branch) ]] ; then
|
elif [[ "$1" == "hg" ]]; then
|
||||||
mark=$LP_MARK_HG
|
mark=$LP_MARK_HG
|
||||||
elif [[ ! -z $(_lp_svn_branch) ]] ; then
|
elif [[ "$1" == "svn" ]]; then
|
||||||
mark=$LP_MARK_SVN
|
mark=$LP_MARK_SVN
|
||||||
elif [[ ! -z $(_lp_fossil_branch) ]] ; then
|
elif [[ "$1" == "fossil" ]]; then
|
||||||
mark=$LP_MARK_FOSSIL
|
mark=$LP_MARK_FOSSIL
|
||||||
|
elif [[ "$1" == "bzr" ]]; then
|
||||||
|
mark=$LP_MARK_BZR
|
||||||
fi
|
fi
|
||||||
echo -ne "${COL}${mark}${NO_COL}"
|
echo -ne "${COL}${mark}${NO_COL}"
|
||||||
}
|
}
|
||||||
@ -1132,7 +1184,7 @@ _lp_sb()
|
|||||||
_lp_time()
|
_lp_time()
|
||||||
{
|
{
|
||||||
[[ "$LP_ENABLE_TIME" != 1 ]] && return
|
[[ "$LP_ENABLE_TIME" != 1 ]] && return
|
||||||
echo -ne "${LP_COLOR_TIME}$(date +%H:%M:%S)${NO_COL}"
|
echo -ne "${LP_COLOR_TIME}${_LP_TIME_SYMBOL}${NO_COL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
########################
|
########################
|
||||||
@ -1143,10 +1195,17 @@ _lp_time()
|
|||||||
_lp_set_prompt()
|
_lp_set_prompt()
|
||||||
{
|
{
|
||||||
# as this get the last returned code, it should be called first
|
# as this get the last returned code, it should be called first
|
||||||
LP_ERR="${LP_COLOR_ERR}$(_lp_sl $(_lp_return_value $?))${NO_COL}"
|
LP_ERR="$(_lp_sl $(_lp_return_value $?))"
|
||||||
|
|
||||||
# execute the old prompt
|
# execute the old prompt if not on Mac OS X (Mountain) Lion
|
||||||
$LP_OLD_PROMPT_COMMAND
|
case "$LP_OS" in
|
||||||
|
Linux|FreeBSD|SunOS) $LP_OLD_PROMPT_COMMAND ;;
|
||||||
|
Darwin)
|
||||||
|
case "$(LP_DWIN_KERNEL_REL_VER)" in
|
||||||
|
11|12) update_terminal_cwd ;;
|
||||||
|
*) $LP_OLD_PROMPT_COMMAND ;;
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# left of main prompt: space at right
|
# left of main prompt: space at right
|
||||||
LP_JOBS=$(_lp_sr "$(_lp_jobcount_color)")
|
LP_JOBS=$(_lp_sr "$(_lp_jobcount_color)")
|
||||||
@ -1155,30 +1214,62 @@ _lp_set_prompt()
|
|||||||
LP_TIME=$(_lp_sr "$(_lp_time)")
|
LP_TIME=$(_lp_sr "$(_lp_time)")
|
||||||
|
|
||||||
# in main prompt: no space
|
# in main prompt: no space
|
||||||
LP_USER=$(_lp_user)
|
LP_PROXY="$(_lp_proxy)"
|
||||||
# LP_HOST is a global set at load time
|
|
||||||
LP_PERM=$(_lp_permissions_color)
|
|
||||||
LP_PWD=$(_lp_shorten_path)
|
|
||||||
[[ -n "$PROMPT_DIRTRIM" ]] && PROMPT_DIRTRIM=$(_lp_get_dirtrim)
|
|
||||||
LP_PROXY="${LP_COLOR_PROXY}$(_lp_proxy)${NO_COL}"
|
|
||||||
|
|
||||||
# right of main prompt: space at left
|
# right of main prompt: space at left
|
||||||
LP_VENV=$(_lp_sl "$(_lp_virtualenv)")
|
LP_VENV=$(_lp_sl "$(_lp_virtualenv)")
|
||||||
if [[ "$EUID" -ne "0" ]] || [[ "$LP_ENABLE_VCS_ROOT" = "1" ]] ; then
|
LP_VCS=""
|
||||||
LP_GIT=$(_lp_sl "$(_lp_git_branch_color)")
|
if [[ "$LP_OLD_PWD" != "$PWD" ]]; then
|
||||||
LP_HG=$(_lp_sl "$(_lp_hg_branch_color)")
|
# LP_HOST is a global set at load time
|
||||||
LP_SVN=$(_lp_sl "$(_lp_svn_branch_color)")
|
LP_PERM=$(_lp_permissions_color)
|
||||||
LP_FOSSIL=$(_lp_sl "$(_lp_fossil_branch_color)")
|
LP_PWD=$(_lp_shorten_path)
|
||||||
fi
|
[[ -n "$PROMPT_DIRTRIM" ]] && PROMPT_DIRTRIM=$(_lp_get_dirtrim)
|
||||||
|
|
||||||
# end of the prompt line: double spaces
|
if [[ "$(_lp_are_vcs_disabled)" -eq "0" ]] ; then
|
||||||
LP_MARK=$(_lp_sb "$(_lp_smart_mark)")
|
LP_VCS="$(_lp_git_branch_color)"
|
||||||
|
LP_VCS_TYPES="git"
|
||||||
|
if [[ -z "$LP_VCS" ]]; then
|
||||||
|
LP_VCS="$(_lp_hg_branch_color)"
|
||||||
|
LP_VCS_TYPES="hg"
|
||||||
|
if [[ -z "$LP_VCS" ]]; then
|
||||||
|
LP_VCS="$(_lp_svn_branch_color)"
|
||||||
|
LP_VCS_TYPES="svn"
|
||||||
|
if [[ -z "$LP_VCS" ]]; then
|
||||||
|
LP_VCS="$(_lp_fossil_branch_color)"
|
||||||
|
LP_VCS_TYPES="fossil"
|
||||||
|
if [[ -z "$LP_VCS" ]]; then
|
||||||
|
LP_VCS="$(_lp_bzr_branch_color)"
|
||||||
|
LP_VCS_TYPES="bzr"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ -z "$LP_VCS" ]] ; then
|
||||||
|
LP_VCS_TYPES=""
|
||||||
|
else
|
||||||
|
LP_VCS=$(_lp_sl "${LP_VCS}")
|
||||||
|
fi
|
||||||
|
|
||||||
# Different path color if root
|
# end of the prompt line: double spaces
|
||||||
if [[ "$EUID" -ne "0" ]] ; then
|
LP_MARK=$(_lp_sb "$(_lp_smart_mark $LP_VCS_TYPES)")
|
||||||
LP_PWD="${LP_COLOR_PATH}${LP_PWD}${NO_COL}"
|
|
||||||
else
|
# Different path color if root
|
||||||
LP_PWD="${LP_COLOR_PATH_ROOT}${LP_PWD}${NO_COL}"
|
if [[ "$EUID" -ne "0" ]] ; then
|
||||||
|
LP_PWD="${LP_COLOR_PATH}${LP_PWD}${NO_COL}"
|
||||||
|
else
|
||||||
|
LP_PWD="${LP_COLOR_PATH_ROOT}${LP_PWD}${NO_COL}"
|
||||||
|
fi
|
||||||
|
LP_OLD_PWD="$PWD"
|
||||||
|
|
||||||
|
elif [[ -n "$LP_VCS_TYPES" ]]; then
|
||||||
|
case "$LP_VCS_TYPES" in
|
||||||
|
git) LP_VCS=$(_lp_sl "$(_lp_git_branch_color)");;
|
||||||
|
hg) LP_VCS=$(_lp_sl "$(_lp_hg_branch_color)");;
|
||||||
|
svn) LP_VCS=$(_lp_sl "$(_lp_svn_branch_color)");;
|
||||||
|
fossil) LP_VCS=$(_lp_sl "$(_lp_fossil_branch_color)");;
|
||||||
|
bzr) LP_VCS=$(_lp_sl "$(_lp_bzr_branch_color)");;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $LP_PS1 ]] ; then
|
if [[ -z $LP_PS1 ]] ; then
|
||||||
@ -1193,13 +1284,12 @@ _lp_set_prompt()
|
|||||||
# path in foreground color
|
# path in foreground color
|
||||||
PS1="${PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
PS1="${PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
||||||
# add VCS infos
|
# add VCS infos
|
||||||
PS1="${PS1}${LP_GIT}${LP_HG}${LP_SVN}${LP_FOSSIL}"
|
PS1="${PS1}${LP_VCS}"
|
||||||
else
|
else
|
||||||
# path in yellow
|
# path in yellow
|
||||||
PS1="${PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
PS1="${PS1}${LP_PWD}]${LP_VENV}${LP_PROXY}"
|
||||||
# do not add VCS infos unless told otherwise (LP_ENABLE_VCS_ROOT)
|
# do not add VCS infos unless told otherwise (LP_ENABLE_VCS_ROOT)
|
||||||
[[ "$LP_ENABLE_VCS_ROOT" = "1" ]] && \
|
[[ "$LP_ENABLE_VCS_ROOT" = "1" ]] && PS1="${PS1}${LP_VCS}"
|
||||||
PS1="${PS1}${LP_GIT}${LP_HG}${LP_SVN}${LP_FOSSIL}"
|
|
||||||
fi
|
fi
|
||||||
# add return code and prompt mark
|
# add return code and prompt mark
|
||||||
PS1="${PS1}${LP_ERR}${LP_MARK}"
|
PS1="${PS1}${LP_ERR}${LP_MARK}"
|
||||||
@ -1219,8 +1309,11 @@ _lp_set_prompt()
|
|||||||
else
|
else
|
||||||
PS1=$LP_PS1
|
PS1=$LP_PS1
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
lptag()
|
||||||
|
{
|
||||||
|
export LP_PS1_PREFIX=$(_lp_sr "$1")
|
||||||
}
|
}
|
||||||
|
|
||||||
# Activate the liquid prompt
|
# Activate the liquid prompt
|
||||||
|
@ -82,6 +82,10 @@ LP_ENABLE_HG=1
|
|||||||
# Recommended value is 1
|
# Recommended value is 1
|
||||||
LP_ENABLE_FOSSIL=1
|
LP_ENABLE_FOSSIL=1
|
||||||
|
|
||||||
|
# Do you want to use the bzr special features ?
|
||||||
|
# Recommanded value is 1
|
||||||
|
LP_ENABLE_BZR=1
|
||||||
|
|
||||||
# Show time of the last prompt display
|
# Show time of the last prompt display
|
||||||
# Recommended value is 0
|
# Recommended value is 0
|
||||||
LP_ENABLE_TIME=0
|
LP_ENABLE_TIME=0
|
||||||
@ -93,4 +97,8 @@ LP_ENABLE_TIME=0
|
|||||||
# feature to your specific terminal.
|
# feature to your specific terminal.
|
||||||
LP_ENABLE_TITLE=0
|
LP_ENABLE_TITLE=0
|
||||||
|
|
||||||
|
# Specify a list of complete and colon (":") separated paths in which, all vcs
|
||||||
|
# will be disabled
|
||||||
|
LP_DISABLED_VCS_PATH=""
|
||||||
|
|
||||||
# vim: set et sts=4 sw=4 tw=120 ft=sh:
|
# vim: set et sts=4 sw=4 tw=120 ft=sh:
|
||||||
|
Loading…
Reference in New Issue
Block a user