75 lines
2.4 KiB
Bash
75 lines
2.4 KiB
Bash
# ~/.profile: executed by the command interpreter for login shells.
|
|
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
|
# exists.
|
|
# see /usr/share/doc/bash/examples/startup-files for examples.
|
|
# the files are located in the bash-doc package.
|
|
|
|
# the default umask is set in /etc/profile; for setting the umask
|
|
# for ssh logins, install and configure the libpam-umask package.
|
|
#umask 022
|
|
|
|
# if running bash
|
|
if [ -n "$BASH_VERSION" ]; then
|
|
# include .bashrc if it exists
|
|
if [ -f "$HOME/.bashrc" ]; then
|
|
. "$HOME/.bashrc"
|
|
fi
|
|
fi
|
|
|
|
# set PATH so it includes user's private bin if it exists
|
|
if [ -d "$HOME/bin" ] ; then
|
|
PATH="$HOME/bin:$PATH"
|
|
fi
|
|
|
|
# set PATH so it includes user's private bin if it exists
|
|
if [ -d "$HOME/.local/bin" ] ; then
|
|
PATH="$HOME/.local/bin:$PATH"
|
|
fi
|
|
|
|
# Everything related to git
|
|
# store colors
|
|
MAGENTA="\[\033[0;35m\]"
|
|
YELLOW="\[\033[01;33m\]"
|
|
BLUE="\[\033[00;34m\]"
|
|
LIGHT_GRAY="\[\033[0;37m\]"
|
|
CYAN="\[\033[0;36m\]"
|
|
GREEN="\[\033[00;32m\]"
|
|
RED="\[\033[0;31m\]"
|
|
VIOLET='\[\033[01;35m\]'
|
|
|
|
function color_my_prompt {
|
|
local __user_and_host="$GREEN\u@\h"
|
|
local __cur_location="$BLUE\w" # capital 'W': current directory, small 'w': full file path
|
|
local __git_branch_color="$GREEN"
|
|
local __prompt_tail="$VIOLET$"
|
|
local __user_input_color="$GREEN"
|
|
local __git_branch=$(__git_ps1);
|
|
|
|
# colour branch name depending on state
|
|
if [[ "${__git_branch}" =~ "*" ]]; then # if repository is dirty
|
|
__git_branch_color="$RED"
|
|
elif [[ "${__git_branch}" =~ "$" ]]; then # if there is something stashed
|
|
__git_branch_color="$YELLOW"
|
|
elif [[ "${__git_branch}" =~ "%" ]]; then # if there are only untracked files
|
|
__git_branch_color="$LIGHT_GRAY"
|
|
elif [[ "${__git_branch}" =~ "+" ]]; then # if there are staged files
|
|
__git_branch_color="$CYAN"
|
|
fi
|
|
|
|
# Build the PS1 (Prompt String)
|
|
PS1="$__user_and_host $__cur_location$__git_branch_color$__git_branch $__prompt_tail$__user_input_color "
|
|
}
|
|
|
|
# configure PROMPT_COMMAND which is executed each time before PS1
|
|
export PROMPT_COMMAND=color_my_prompt
|
|
|
|
# if .git-prompt.sh exists, set options and execute it
|
|
if [ -f ~/.git-prompt.sh ]; then
|
|
GIT_PS1_SHOWDIRTYSTATE=true
|
|
GIT_PS1_SHOWSTASHSTATE=true
|
|
GIT_PS1_SHOWUNTRACKEDFILES=true
|
|
GIT_PS1_SHOWUPSTREAM="auto"
|
|
GIT_PS1_HIDE_IF_PWD_IGNORED=true
|
|
GIT_PS1_SHOWCOLORHINTS=true
|
|
. ~/.git-prompt.sh
|
|
fi
|