# ~/.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