Last active
June 22, 2017 22:00
-
-
Save RichardMarks/b20b5632ff0eb2585bb8b816aabd0d55 to your computer and use it in GitHub Desktop.
OSX bash profile
This file contains 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
# GNU coreutils | |
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" | |
MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH" | |
# bash completion | |
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion | |
# Added by n-install (see http://git.io/n-install-repo). | |
export N_PREFIX="$HOME/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin" | |
# prettier git | |
source ~/.git-prompt.sh | |
GIT_PS1_SHOWDIRTYSTATE=true | |
# fix ls colors | |
eval $( dircolors -b $HOME/.dircolors ) | |
# nicer ls default | |
# Reset | |
Color_Off="\[\033[0m\]" # Text Reset | |
# Regular Colors | |
Black="\[\033[0;30m\]" # Black | |
Red="\[\033[0;31m\]" # Red | |
Green="\[\033[0;32m\]" # Green | |
Yellow="\[\033[0;33m\]" # Yellow | |
Blue="\[\033[0;34m\]" # Blue | |
Purple="\[\033[0;35m\]" # Purple | |
Cyan="\[\033[0;36m\]" # Cyan | |
White="\[\033[0;37m\]" # White | |
# Bold | |
BBlack="\[\033[1;30m\]" # Black | |
BRed="\[\033[1;31m\]" # Red | |
BGreen="\[\033[1;32m\]" # Green | |
BYellow="\[\033[1;33m\]" # Yellow | |
BBlue="\[\033[1;34m\]" # Blue | |
BPurple="\[\033[1;35m\]" # Purple | |
BCyan="\[\033[1;36m\]" # Cyan | |
BWhite="\[\033[1;37m\]" # White | |
# Underline | |
UBlack="\[\033[4;30m\]" # Black | |
URed="\[\033[4;31m\]" # Red | |
UGreen="\[\033[4;32m\]" # Green | |
UYellow="\[\033[4;33m\]" # Yellow | |
UBlue="\[\033[4;34m\]" # Blue | |
UPurple="\[\033[4;35m\]" # Purple | |
UCyan="\[\033[4;36m\]" # Cyan | |
UWhite="\[\033[4;37m\]" # White | |
# Background | |
On_Black="\[\033[40m\]" # Black | |
On_Red="\[\033[41m\]" # Red | |
On_Green="\[\033[42m\]" # Green | |
On_Yellow="\[\033[43m\]" # Yellow | |
On_Blue="\[\033[44m\]" # Blue | |
On_Purple="\[\033[45m\]" # Purple | |
On_Cyan="\[\033[46m\]" # Cyan | |
On_White="\[\033[47m\]" # White | |
# High Intensty | |
IBlack="\[\033[0;90m\]" # Black | |
IRed="\[\033[0;91m\]" # Red | |
IGreen="\[\033[0;92m\]" # Green | |
IYellow="\[\033[0;93m\]" # Yellow | |
IBlue="\[\033[0;94m\]" # Blue | |
IPurple="\[\033[0;95m\]" # Purple | |
ICyan="\[\033[0;96m\]" # Cyan | |
IWhite="\[\033[0;97m\]" # White | |
# Bold High Intensty | |
BIBlack="\[\033[1;90m\]" # Black | |
BIRed="\[\033[1;91m\]" # Red | |
BIGreen="\[\033[1;92m\]" # Green | |
BIYellow="\[\033[1;93m\]" # Yellow | |
BIBlue="\[\033[1;94m\]" # Blue | |
BIPurple="\[\033[1;95m\]" # Purple | |
BICyan="\[\033[1;96m\]" # Cyan | |
BIWhite="\[\033[1;97m\]" # White | |
# High Intensty backgrounds | |
On_IBlack="\[\033[0;100m\]" # Black | |
On_IRed="\[\033[0;101m\]" # Red | |
On_IGreen="\[\033[0;102m\]" # Green | |
On_IYellow="\[\033[0;103m\]" # Yellow | |
On_IBlue="\[\033[0;104m\]" # Blue | |
On_IPurple="\[\033[10;95m\]" # Purple | |
On_ICyan="\[\033[0;106m\]" # Cyan | |
On_IWhite="\[\033[0;107m\]" # White | |
# Various variables you might want for your PS1 prompt instead | |
Time12h="\T" | |
Time12a="\@" | |
PathShort="\W" | |
PathFull="\w" | |
NewLine="\n" | |
Jobs="\j" | |
PUser="\u" | |
PHost="\h" | |
export PS1=$Red$PUser$Color_Off@$Cyan$PHost:$Color_Off$PathFull$Color_Off$NewLine$IBlack$Time12h$Color_Off'$(git branch &>/dev/null;\ | |
if [ $? -eq 0 ]; then \ | |
echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \ | |
if [ "$?" -eq "0" ]; then \ | |
# @4 - Clean repository - nothing to commit | |
echo "'$Green'"$(__git_ps1 " (%s)"); \ | |
else \ | |
# @5 - Changes to working tree | |
echo "'$IRed'"$(__git_ps1 " {%s}"); \ | |
fi) '$BYellow$PathShort$Color_Off'\$ "; \ | |
else \ | |
# @2 - Prompt when not in GIT repo | |
echo " '$PUser@$PHost$PathFull$NewLine$White$PathShort$Color_Off'\$ "; \ | |
fi)' | |
export EDITOR='vim' | |
# custom functions and aliases | |
alias rebash='source ~/.bash_profile' | |
alias hidedesktopicons='defaults write com.apple.finder CreateDesktop false && killall Finder' | |
alias showdesktopicons='defaults write com.apple.finder CreateDesktop true && killall Finder' | |
alias ls='ls -aGFh --color="always"' | |
# google something | |
function google() { | |
l_subject="$@" | |
open "https://www.google.com/?q=$l_subject" | |
} | |
# install npm module globally | |
function gni() { | |
l_package="$@" | |
npm i -g "$l_package" | |
} | |
# install npm module locally | |
function ni() { | |
l_package="$@" | |
npm i "$l_package" | |
} | |
alias ns='npm start' | |
alias nt='npm test' | |
alias gs='git status' | |
alias gcm='git checkout master' | |
# checkout new git branch from current | |
function gcb() { | |
l_branch="$@" | |
git checkout -b "$l_branch" | |
} | |
alias gh='open http://github.com' | |
alias gbs='git branch --sort=committerdate' | |
alias gbl="git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'" | |
# curl url from http or https without certs | |
# Allow connections to SSL sites without certs | |
function ck() { | |
l_uri="$@" | |
curl -k "$l_uri" | |
} | |
function cci() { | |
l_path="$1" | |
# if [] | |
mkdir -p "$l_path" | |
cd "$l_path" | |
echo "Creating Component in $l_path/" | |
touch "$l_path/index.js" | |
touch "$l_path/index.css" | |
touch "$l_path/index.tests.js" | |
} |
This file contains 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
# GNU coreutils | |
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" | |
MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH" | |
# bash completion | |
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion | |
# Added by n-install (see http://git.io/n-install-repo). | |
export N_PREFIX="$HOME/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin" | |
# prettier git | |
source ~/.git-prompt.sh | |
GIT_PS1_SHOWDIRTYSTATE=true | |
# fix ls colors | |
eval $( dircolors -b $HOME/.dircolors ) | |
# nicer ls default | |
# Reset | |
Color_Off="\[\033[0m\]" # Text Reset | |
# Regular Colors | |
Black="\[\033[0;30m\]" # Black | |
Red="\[\033[0;31m\]" # Red | |
Green="\[\033[0;32m\]" # Green | |
Yellow="\[\033[0;33m\]" # Yellow | |
Blue="\[\033[0;34m\]" # Blue | |
Purple="\[\033[0;35m\]" # Purple | |
Cyan="\[\033[0;36m\]" # Cyan | |
White="\[\033[0;37m\]" # White | |
# Bold | |
BBlack="\[\033[1;30m\]" # Black | |
BRed="\[\033[1;31m\]" # Red | |
BGreen="\[\033[1;32m\]" # Green | |
BYellow="\[\033[1;33m\]" # Yellow | |
BBlue="\[\033[1;34m\]" # Blue | |
BPurple="\[\033[1;35m\]" # Purple | |
BCyan="\[\033[1;36m\]" # Cyan | |
BWhite="\[\033[1;37m\]" # White | |
# Underline | |
UBlack="\[\033[4;30m\]" # Black | |
URed="\[\033[4;31m\]" # Red | |
UGreen="\[\033[4;32m\]" # Green | |
UYellow="\[\033[4;33m\]" # Yellow | |
UBlue="\[\033[4;34m\]" # Blue | |
UPurple="\[\033[4;35m\]" # Purple | |
UCyan="\[\033[4;36m\]" # Cyan | |
UWhite="\[\033[4;37m\]" # White | |
# Background | |
On_Black="\[\033[40m\]" # Black | |
On_Red="\[\033[41m\]" # Red | |
On_Green="\[\033[42m\]" # Green | |
On_Yellow="\[\033[43m\]" # Yellow | |
On_Blue="\[\033[44m\]" # Blue | |
On_Purple="\[\033[45m\]" # Purple | |
On_Cyan="\[\033[46m\]" # Cyan | |
On_White="\[\033[47m\]" # White | |
# High Intensty | |
IBlack="\[\033[0;90m\]" # Black | |
IRed="\[\033[0;91m\]" # Red | |
IGreen="\[\033[0;92m\]" # Green | |
IYellow="\[\033[0;93m\]" # Yellow | |
IBlue="\[\033[0;94m\]" # Blue | |
IPurple="\[\033[0;95m\]" # Purple | |
ICyan="\[\033[0;96m\]" # Cyan | |
IWhite="\[\033[0;97m\]" # White | |
# Bold High Intensty | |
BIBlack="\[\033[1;90m\]" # Black | |
BIRed="\[\033[1;91m\]" # Red | |
BIGreen="\[\033[1;92m\]" # Green | |
BIYellow="\[\033[1;93m\]" # Yellow | |
BIBlue="\[\033[1;94m\]" # Blue | |
BIPurple="\[\033[1;95m\]" # Purple | |
BICyan="\[\033[1;96m\]" # Cyan | |
BIWhite="\[\033[1;97m\]" # White | |
# High Intensty backgrounds | |
On_IBlack="\[\033[0;100m\]" # Black | |
On_IRed="\[\033[0;101m\]" # Red | |
On_IGreen="\[\033[0;102m\]" # Green | |
On_IYellow="\[\033[0;103m\]" # Yellow | |
On_IBlue="\[\033[0;104m\]" # Blue | |
On_IPurple="\[\033[10;95m\]" # Purple | |
On_ICyan="\[\033[0;106m\]" # Cyan | |
On_IWhite="\[\033[0;107m\]" # White | |
# Various variables you might want for your PS1 prompt instead | |
Time12h="\T" | |
Time12a="\@" | |
PathShort="\W" | |
PathFull="\w" | |
NewLine="\n" | |
Jobs="\j" | |
PUser="\u" | |
PHost="\h" | |
export PS1=$Red$PUser$Color_Off@$Cyan$PHost:$Color_Off$PathFull$Color_Off$NewLine$IBlack$Time12h$Color_Off'$(git branch &>/dev/null;\ | |
if [ $? -eq 0 ]; then \ | |
echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \ | |
if [ "$?" -eq "0" ]; then \ | |
# @4 - Clean repository - nothing to commit | |
echo "'$Green'"$(__git_ps1 " (%s)"); \ | |
else \ | |
# @5 - Changes to working tree | |
echo "'$IRed'"$(__git_ps1 " {%s}"); \ | |
fi) '$BYellow$PathShort$Color_Off'\$ "; \ | |
else \ | |
# @2 - Prompt when not in GIT repo | |
echo " '$PUser@$PHost$PathFull$NewLine$White$PathShort$Color_Off'\$ "; \ | |
fi)' | |
export EDITOR='vim' | |
# custom functions and aliases | |
alias rebash='source ~/.bash_profile' | |
alias hidedesktopicons='defaults write com.apple.finder CreateDesktop false && killall Finder' | |
alias showdesktopicons='defaults write com.apple.finder CreateDesktop true && killall Finder' | |
alias ls='ls -aGFh --color="always"' | |
# google something | |
function google() { | |
l_subject="$@" | |
open "https://www.google.com/?q=$l_subject" | |
} | |
# install npm module globally | |
function gni() { | |
l_package="$@" | |
npm i -g "$l_package" | |
} | |
# install npm module locally | |
function ni() { | |
l_package="$@" | |
npm i "$l_package" | |
} | |
alias ns='npm start' | |
alias nt='npm test' | |
alias gs='git status' | |
alias gcm='git checkout master' | |
# checkout new git branch from current | |
function gcb() { | |
l_branch="$@" | |
git checkout -b "$l_branch" | |
} | |
alias gh='open http://github.com' | |
alias gbs='git branch --sort=committerdate' | |
alias gbl="git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'" | |
alias gfm='git fetch origin master' | |
alias gpm='git pull origin master' | |
alias gitsync='gfm && gpm' | |
# curl url from http or https without certs | |
# Allow connections to SSL sites without certs | |
function ck() { | |
l_uri="$@" | |
curl -k "$l_uri" | |
} | |
function cci() { | |
l_path="$1" | |
# if [] | |
mkdir -p "$l_path" | |
cd "$l_path" | |
echo "Creating Component in $l_path/" | |
touch "$l_path/index.js" | |
touch "$l_path/index.css" | |
touch "$l_path/index.tests.js" | |
} | |
# hello git safety net | |
function git_safety_net () { | |
if [[ "$BASH_COMMAND" == *"git checkout"* ]] | |
then | |
echo -e "\x1b[93m \x1b[41m git safety net triggered! \x1b[39m \x1b[49m" | |
echo "" | |
echo " User is attempting to run command:" | |
echo "" | |
echo -e "\x1b[93m $BASH_COMMAND \x1b[39m" | |
echo "" | |
read -r -p $'\x1b[93m \x1b[41m Do you really want to run this command? \x1b[39m \x1b[49m[y/N] ' response | |
case "$response" in | |
[yY][eE][sS]|[yY]) | |
return 0 | |
;; | |
*) | |
echo "" | |
echo -e "\x1b[93m \x1b[41m The command was aborted! \x1b[39m \x1b[49m" | |
echo "" | |
return 1 | |
;; | |
esac | |
return 1 | |
fi | |
} | |
shopt -s extdebug | |
trap git_safety_net DEBUG |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment