Created
September 13, 2016 13:08
-
-
Save YerkoPalma/e4730551256c37a75217fc6615173cfe to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # bashrc for c9 workspaces | |
| # by Yerko Palma | |
| . /etc/apache2/envvars | |
| # If not running interactively, don't do anything else | |
| [ -z "$PS1" ] && return | |
| # don't put duplicate lines or lines starting with space in the history. | |
| # See bash(1) for more options | |
| HISTCONTROL=ignoreboth | |
| # append to the history file, don't overwrite it | |
| shopt -s histappend | |
| # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) | |
| HISTSIZE=1000 | |
| HISTFILESIZE=2000 | |
| # check the window size after each command and, if necessary, | |
| # update the values of LINES and COLUMNS. | |
| shopt -s checkwinsize | |
| # make less more friendly for non-text input files, see lesspipe(1) | |
| [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" | |
| # Alias definitions. | |
| # You may want to put all your additions into a separate file like | |
| # ~/.bash_aliases, instead of adding them here directly. | |
| # See /usr/share/doc/bash-doc/examples in the bash-doc package. | |
| if [ -f ~/.bash_aliases ]; then | |
| . ~/.bash_aliases | |
| fi | |
| # enable programmable completion features (you don't need to enable | |
| # this, if it's already enabled in /etc/bash.bashrc and /etc/profile | |
| # sources /etc/bash.bashrc). | |
| if [ -f /etc/bash_completion ] && ! shopt -oq posix; then | |
| . /etc/bash_completion | |
| fi | |
| # PS1='\[\033[01;32m\]${C9_USER}\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (%s)") $ ' | |
| prompt_git() { | |
| local s=''; | |
| local branchName=''; | |
| # Check if the current directory is in a Git repository. | |
| if [ $(git rev-parse --is-inside-work-tree &>/dev/null; echo "${?}") == '0' ]; then | |
| # check if the current directory is in .git before running git checks | |
| if [ "$(git rev-parse --is-inside-git-dir 2> /dev/null)" == 'false' ]; then | |
| # Ensure the index is up to date. | |
| git update-index --really-refresh -q &>/dev/null; | |
| # Check for uncommitted changes in the index. | |
| if ! $(git diff --quiet --ignore-submodules --cached); then | |
| s+='+'; | |
| fi; | |
| # Check for unstaged changes. | |
| if ! $(git diff-files --quiet --ignore-submodules --); then | |
| s+='!'; | |
| fi; | |
| # Check for untracked files. | |
| if [ -n "$(git ls-files --others --exclude-standard)" ]; then | |
| s+='?'; | |
| fi; | |
| # Check for stashed files. | |
| if $(git rev-parse --verify refs/stash &>/dev/null); then | |
| s+='$'; | |
| fi; | |
| fi; | |
| # Get the short symbolic ref. | |
| # If HEAD isn’t a symbolic ref, get the short SHA for the latest commit | |
| # Otherwise, just give up. | |
| branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \ | |
| git rev-parse --short HEAD 2> /dev/null || \ | |
| echo '(unknown)')"; | |
| [ -n "${s}" ] && s=" [${s}]"; | |
| echo -e "${1}${branchName}${2}${s}"; | |
| else | |
| return; | |
| fi; | |
| } | |
| if tput setaf 1 &> /dev/null; then | |
| tput sgr0; # reset colors | |
| bold=$(tput bold); | |
| reset=$(tput sgr0); | |
| # Solarized colors, taken from http://git.io/solarized-colors. | |
| black=$(tput setaf 0); | |
| blue=$(tput setaf 33); | |
| cyan=$(tput setaf 37); | |
| green=$(tput setaf 64); | |
| orange=$(tput setaf 166); | |
| purple=$(tput setaf 125); | |
| red=$(tput setaf 124); | |
| violet=$(tput setaf 61); | |
| white=$(tput setaf 15); | |
| yellow=$(tput setaf 136); | |
| else | |
| bold=''; | |
| reset="\e[0m"; | |
| black="\e[1;30m"; | |
| blue="\e[1;34m"; | |
| cyan="\e[1;36m"; | |
| green="\e[1;32m"; | |
| orange="\e[1;33m"; | |
| purple="\e[1;35m"; | |
| red="\e[1;31m"; | |
| violet="\e[1;35m"; | |
| white="\e[1;37m"; | |
| yellow="\e[1;33m"; | |
| fi; | |
| # Highlight the user name when logged in as root. | |
| if [[ "${USER}" == "root" ]]; then | |
| userStyle="${red}"; | |
| else | |
| userStyle="${orange}"; | |
| fi; | |
| # Highlight the hostname when connected via SSH. | |
| if [[ "${SSH_TTY}" ]]; then | |
| hostStyle="${bold}${red}"; | |
| else | |
| hostStyle="${yellow}"; | |
| fi; | |
| # Set the terminal title and prompt. | |
| PS1="\[\033]0;\W\007\]"; # working directory base nam | |
| PS1+="\[${userStyle}\]${C9_USER}"; # username | |
| PS1+="\[${white}\] at "; | |
| PS1+="\[${hostStyle}\]\u"; # host | |
| PS1+="\[${white}\] in "; | |
| PS1+="\[${green}\]\w"; # working directory full path | |
| PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\" \"\[${blue}\]\")"; # Git repository details | |
| PS1+="\n"; | |
| PS1+="\[${white}\]\$ \[${reset}\]"; # `$` (and reset color) | |
| export PS1; | |
| PS2="\[${yellow}\]→ \[${reset}\]"; | |
| export PS2; | |
| # If this is an xterm set the title to user@host:dir | |
| case "$TERM" in | |
| xterm*|rxvt*) | |
| PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" | |
| ;; | |
| *) | |
| ;; | |
| esac | |
| export rvm_silence_path_mismatch_check_flag=1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment