Make Git Love Terminal
Again, a quick one just to remind my self...
#
#Let's make CLI play sweetness with git.
# Git branch in prompt.
function parse_git_dirty { if [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]]; then
echo "*"
elif (( $(git status 2> /dev/null | grep 'Your branch is ahead of' | wc -l) != 0 )); then
echo "+"
fi
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(parse_git_branch)$ '
List of backslash escaped special character:
\a
: an ASCII bell character (07)\d
: the date in "Weekday Month Date" format (e.g., "Sat Aug 31")\D{format}
: the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required\e
: an ASCII escape character (033)\h
: the hostname up to the first '.'\H
: the hostname\j
: the number of jobs currently managed by the shell\l
: the basename of the shell’s terminal device name\n
: newline\r
: carriage return\s
: the name of the shell, the basename of $0 (the portion following the final slash)\t
: the current time in 24-hour HH:MM:SS format\T
: the current time in 12-hour HH:MM:SS format\@
: the current time in 12-hour am/pm format\A
: the current time in 24-hour HH:MM format\u
: the username of the current user\v
: the version of bash (e.g., 2.00)\V
: the release of bash, version + patch level (e.g., 2.00.0)\w
: the current working directory, with $HOME abbreviated with a tilde\W
: the basename of the current working directory, with $HOME abbreviated with a tilde\!
: the history number of this command\#
: the command number of this command\$
: if the effective UID is 0, a #, otherwise a $\nnn
: the character corresponding to the octal number nnn\\
: a backslash\[
: begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt\]
: end a sequence of non-printing characters