Created
May 27, 2014 17:56
-
-
Save chorn/7b13044a26a7ef8c6b54 to your computer and use it in GitHub Desktop.
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
export LESS="irQ" | |
export HISTCONTROL=ignoreboth | |
export HISTFILESIZE=10000000 | |
export HISTSIZE=1000 | |
export INPUTRC="$HOME/.bash_inputrc" | |
export MAILCHECK=0 | |
export PS1='\t \u@\h \w \$ ' | |
umask 022 | |
set -o emacs -o monitor -o notify | |
for opt in checkwinsize cmdhist expand_aliases histappend hostcomplete interactive_comments nocaseglob no_empty_cmd_completion progcomp promptvars sourcepath checkjobs ; do | |
shopt | grep -c $opt >/dev/null && shopt -s $opt | |
done | |
remove_from_path() { | |
export PATH=${PATH//":$1"/} | |
export PATH=${PATH//"$1:"/} | |
export PATH=${PATH//":$1:"/} | |
} | |
add_to_path() { | |
remove_from_path "$1" | |
[[ -d "$1" || "$2" -eq "force" ]] && export PATH="$1:${PATH}" | |
} | |
PATH="/bin:/sbin" | |
for d in /{bin,sbin} /{usr,opt}/{bin,sbin} /{opt,usr}/{local,X11}/{bin,sbin} /usr/local/Cellar/macvim/*/MacVim.app/Contents/MacOS /Applications/LibreOffice.app/Contents/MacOS /Applications/Sublime\ Text.app/Contents/SharedSupport/bin /Applications/VMware\ Fusion.app/Contents/Library /Applications/Postgres.app/Contents/Versions/*/bin $HOME/bin ; do | |
add_to_path "$d" | |
done | |
# scripts ------------------------------------------------------------------ | |
for script in "$HOME/.bash_${HOSTNAME/.*/}" /etc/bash_completion /usr/local/etc/bash_completion /usr/share/git/git-prompt.sh /usr/share/git-core/contrib/completion/git-prompt.sh /usr/local/share/chruby/chruby.sh ~/bin/git-prompt.sh /usr/local/rvm/scripts/rvm ~/.rvm/scripts/rvm ; do | |
[[ -s "$script" ]] && source "$script" | |
done | |
# Preferred commands ------------------------------------------------------- | |
for f in nano vi emacs vim mvim subl atom ; do | |
if command -v "${f}" >/dev/null 2>/dev/null ; then | |
export EDITOR="${f}" | |
export VISUAL="${f}" | |
fi | |
done | |
for f in more most vimpager less ; do | |
if command -v "${f}" >/dev/null 2>/dev/null ; then | |
export PAGER="${f}" | |
export READNULLCMD="${f}" | |
alias m="${f}" | |
fi | |
done | |
# keychain ----------------------------------------------------------------- | |
if command -v keychain >/dev/null 2>/dev/null ; then | |
if [ "${OSTYPE:0:6}" = "darwin" ] ; then | |
eval `keychain --eval --quiet --agents ssh --inherit any id_dsa` | |
elif [ "${OSTYPE:0:5}" = "linux" ] ; then | |
eval `keychain --eval --quiet --agents ssh id_dsa` | |
fi | |
fi | |
# OS X --------------------------------------------------------------------- | |
if [ "${OSTYPE:0:6}" = "darwin" ] ; then | |
export _GNUDATE="gdate" | |
alias ls="/bin/ls -G" | |
alias jist='jist -c' | |
alias l="ls -lO" | |
alias p="ps -Aj" | |
alias vuv="vagrant up --provider vmware_fusion" | |
alias vu="vagrant up" | |
alias update_brew="brew update && brew upgrade && brew prune && brew cleanup && brew outdated " | |
alias start="simple_launchctl load" | |
alias stop="simple_launchctl unload" | |
simple_launchctl() { find $HOME/Library/LaunchAgents -name '*.plist' -name '*'$2'*' -ok launchctl $1 -w {} \; ; } | |
# Linux --------------------------------------------------------------------- | |
elif [ "${OSTYPE:0:5}" = "linux" ] ; then | |
export _GNUDATE="date" | |
alias ls="/bin/ls --color=auto --classify" | |
alias p="ps auxOU" | |
alias agu="sudo apt-get update -qq; sudo aptitude safe-upgrade" | |
kernel_purge() { dpkg -l "linux-*"|sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'|xargs sudo apt-get purge; } | |
if [ "${HOME:0:14}" = "/var/services/" ] ; then | |
export TERM=cons25 | |
alias ls="/opt/bin/ls --color=auto --classify" | |
alias ps="/opt/bin/ps" | |
fi | |
fi | |
# --------------------------------------------------------------------------- | |
alias l="ls -l" | |
alias l1="ls -1" | |
alias ll="l -A" | |
alias la="ls -A" | |
lm() { ls -lF $2 | m ; } | |
pw() { p | less ; } | |
alias confsync="rsync -qax .tmux.conf .screenrc .bashrc .bash_profile .bash_inputrc .gemrc .vimrc" | |
# MySQL --------------------------------------------------------------------- | |
if command -v mysql >/dev/null 2>/dev/null ; then | |
alias mydump="mysqldump --allow-keywords --add-locks --hex-blob --max_allowed_packet=128M --lock-tables=false --lock-all-tables=false --quick --quote-names --complete-insert=false" | |
fi | |
# Ruby --------------------------------------------------------------------- | |
if ! command -v rvm >/dev/null 2>/dev/null && command -v chruby >/dev/null 2>/dev/null ; then | |
[[ -s "$HOME/.ruby-version" ]] && chruby $(cat "$HOME/.ruby-version") | |
fi | |
if command -v ruby >/dev/null 2>/dev/null ; then | |
alias be="bundle exec" | |
alias berc="bundle exec rails c" | |
alias gs="gem server" | |
rebundle() { start=`pwd` ; find . -maxdepth 3 -type f -name Gemfile | while read gemfile ; do echo $gemfile && cd `dirname "$gemfile"` && bundle ; cd "$start" ; done ; } | |
fi | |
# Git --------------------------------------------------------------------- | |
if command -v git >/dev/null 2>/dev/null ; then | |
alias gst="git status" | |
alias gd="git diff" | |
alias gcam="git commit -a -m" | |
alias gco="git checkout" | |
alias gb="git branch" | |
alias gps="git push" | |
alias gpl="git pull" | |
alias gpp="git pull --rebase && git push" | |
alias gmf="git merge --ff-only" | |
fi | |
# tmux --------------------------------------------------------------------- | |
if command -v tmux >/dev/null 2>/dev/null ; then | |
neww() { tmux neww -n $1.1 "exec ssh $1" && tmux neww -n $1.2 "exec ssh $1" ; } | |
fi | |
# dates --------------------------------------------------------------------- | |
if command -v $_GNUDATE >/dev/null 2>/dev/null ; then | |
date2stamp() { $_GNUDATE --utc --date "$1" +%s ; } | |
stamp2date() { $_GNUDATE --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T" ; } | |
dateDiff() { | |
case $1 in | |
-s) sec=1; shift;; | |
-m) sec=60; shift;; | |
-h) sec=3600; shift;; | |
-d) sec=86400; shift;; | |
-w) sec=604800; shift;; | |
*) sec=86400;; | |
esac | |
dte1=$(date2stamp $1) | |
dte2=$(date2stamp $2) | |
diffSec=$((dte2-dte1)) | |
if ((diffSec < 0)); then abs=-1; else abs=1; fi | |
echo $((diffSec/sec*abs)) | |
} | |
date_range() { | |
range=$(dateDiff -d $1 $2) | |
for((i=0; i<=$range; i++)) ; do | |
$_GNUDATE --date "$1 $i day" +'%Y-%m-%d' | |
done | |
} | |
fi | |
# openssl --------------------------------------------------------------------- | |
if command -v openssl >/dev/null 2>/dev/null ; then | |
newssl() { | |
case "$1" in | |
rsa|-rsa|--rsa|-r) openssl genrsa -out key.pem 2048 >&/dev/null ;; | |
dsa|-dsa|--dsa|-d) openssl dsaparam -noout -out key.pem -genkey 2048 >&/dev/null ;; | |
ec|-ec|--ec|-e) openssl ecparam -out key.pem -name sect571k1 -genkey >&/dev/null ;; | |
*) echo "newssl <rsa|dsa|ec> <hostname>" ; return ;; | |
esac | |
openssl req -new -x509 -days 3650 -subj "/C=US/ST=New York/L=Rochester/CN=$2" -key key.pem -out "$2.pem" >&/dev/null | |
openssl x509 -in "$2.pem" -text >&/dev/null | |
cat key.pem >> "$2.pem" && rm key.pem >&/dev/null | |
} | |
fi | |
# Colors--------------------------------------------------------------------- | |
declare -a __color | |
__reset="(B[m" | |
__color[0]="[30m" | |
__color[1]="[31m" | |
__color[2]="[32m" | |
__color[3]="[33m" | |
__color[4]="[34m" | |
__color[5]="[35m" | |
__color[6]="[36m" | |
__color[7]="[37m" | |
__color[8]="[90m" | |
__color[9]="[91m" | |
__color[10]="[92m" | |
__color[11]="[93m" | |
__color[12]="[94m" | |
__color[13]="[95m" | |
__color[14]="[96m" | |
__color[15]="[97m" | |
__color[16]="[38;5;16m" | |
__color[17]="[38;5;17m" | |
__color[18]="[38;5;18m" | |
__color[19]="[38;5;19m" | |
__color[20]="[38;5;20m" | |
__color[21]="[38;5;21m" | |
__color[22]="[38;5;22m" | |
__color[23]="[38;5;23m" | |
__color[24]="[38;5;24m" | |
__color[25]="[38;5;25m" | |
__color[26]="[38;5;26m" | |
__color[27]="[38;5;27m" | |
__color[28]="[38;5;28m" | |
__color[29]="[38;5;29m" | |
__color[30]="[38;5;30m" | |
__color[31]="[38;5;31m" | |
__color[32]="[38;5;32m" | |
__color[33]="[38;5;33m" | |
__color[34]="[38;5;34m" | |
__color[35]="[38;5;35m" | |
__color[36]="[38;5;36m" | |
__color[37]="[38;5;37m" | |
__color[38]="[38;5;38m" | |
__color[39]="[38;5;39m" | |
__color[40]="[38;5;40m" | |
__color[41]="[38;5;41m" | |
__color[42]="[38;5;42m" | |
__color[43]="[38;5;43m" | |
__color[44]="[38;5;44m" | |
__color[45]="[38;5;45m" | |
__color[46]="[38;5;46m" | |
__color[47]="[38;5;47m" | |
__color[48]="[38;5;48m" | |
__color[49]="[38;5;49m" | |
__color[50]="[38;5;50m" | |
__color[51]="[38;5;51m" | |
__color[52]="[38;5;52m" | |
__color[53]="[38;5;53m" | |
__color[54]="[38;5;54m" | |
__color[55]="[38;5;55m" | |
__color[56]="[38;5;56m" | |
__color[57]="[38;5;57m" | |
__color[58]="[38;5;58m" | |
__color[59]="[38;5;59m" | |
__color[60]="[38;5;60m" | |
__color[61]="[38;5;61m" | |
__color[62]="[38;5;62m" | |
__color[63]="[38;5;63m" | |
__color[64]="[38;5;64m" | |
__color[65]="[38;5;65m" | |
__color[66]="[38;5;66m" | |
__color[67]="[38;5;67m" | |
__color[68]="[38;5;68m" | |
__color[69]="[38;5;69m" | |
__color[70]="[38;5;70m" | |
__color[71]="[38;5;71m" | |
__color[72]="[38;5;72m" | |
__color[73]="[38;5;73m" | |
__color[74]="[38;5;74m" | |
__color[75]="[38;5;75m" | |
__color[76]="[38;5;76m" | |
__color[77]="[38;5;77m" | |
__color[78]="[38;5;78m" | |
__color[79]="[38;5;79m" | |
__color[80]="[38;5;80m" | |
__color[81]="[38;5;81m" | |
__color[82]="[38;5;82m" | |
__color[83]="[38;5;83m" | |
__color[84]="[38;5;84m" | |
__color[85]="[38;5;85m" | |
__color[86]="[38;5;86m" | |
__color[87]="[38;5;87m" | |
__color[88]="[38;5;88m" | |
__color[89]="[38;5;89m" | |
__color[90]="[38;5;90m" | |
__color[91]="[38;5;91m" | |
__color[92]="[38;5;92m" | |
__color[93]="[38;5;93m" | |
__color[94]="[38;5;94m" | |
__color[95]="[38;5;95m" | |
__color[96]="[38;5;96m" | |
__color[97]="[38;5;97m" | |
__color[98]="[38;5;98m" | |
__color[99]="[38;5;99m" | |
__color[100]="[38;5;100m" | |
__color[101]="[38;5;101m" | |
__color[102]="[38;5;102m" | |
__color[103]="[38;5;103m" | |
__color[104]="[38;5;104m" | |
__color[105]="[38;5;105m" | |
__color[106]="[38;5;106m" | |
__color[107]="[38;5;107m" | |
__color[108]="[38;5;108m" | |
__color[109]="[38;5;109m" | |
__color[110]="[38;5;110m" | |
__color[111]="[38;5;111m" | |
__color[112]="[38;5;112m" | |
__color[113]="[38;5;113m" | |
__color[114]="[38;5;114m" | |
__color[115]="[38;5;115m" | |
__color[116]="[38;5;116m" | |
__color[117]="[38;5;117m" | |
__color[118]="[38;5;118m" | |
__color[119]="[38;5;119m" | |
__color[120]="[38;5;120m" | |
__color[121]="[38;5;121m" | |
__color[122]="[38;5;122m" | |
__color[123]="[38;5;123m" | |
__color[124]="[38;5;124m" | |
__color[125]="[38;5;125m" | |
__color[126]="[38;5;126m" | |
__color[127]="[38;5;127m" | |
__color[128]="[38;5;128m" | |
__color[129]="[38;5;129m" | |
__color[130]="[38;5;130m" | |
__color[131]="[38;5;131m" | |
__color[132]="[38;5;132m" | |
__color[133]="[38;5;133m" | |
__color[134]="[38;5;134m" | |
__color[135]="[38;5;135m" | |
__color[136]="[38;5;136m" | |
__color[137]="[38;5;137m" | |
__color[138]="[38;5;138m" | |
__color[139]="[38;5;139m" | |
__color[140]="[38;5;140m" | |
__color[141]="[38;5;141m" | |
__color[142]="[38;5;142m" | |
__color[143]="[38;5;143m" | |
__color[144]="[38;5;144m" | |
__color[145]="[38;5;145m" | |
__color[146]="[38;5;146m" | |
__color[147]="[38;5;147m" | |
__color[148]="[38;5;148m" | |
__color[149]="[38;5;149m" | |
__color[150]="[38;5;150m" | |
__color[151]="[38;5;151m" | |
__color[152]="[38;5;152m" | |
__color[153]="[38;5;153m" | |
__color[154]="[38;5;154m" | |
__color[155]="[38;5;155m" | |
__color[156]="[38;5;156m" | |
__color[157]="[38;5;157m" | |
__color[158]="[38;5;158m" | |
__color[159]="[38;5;159m" | |
__color[160]="[38;5;160m" | |
__color[161]="[38;5;161m" | |
__color[162]="[38;5;162m" | |
__color[163]="[38;5;163m" | |
__color[164]="[38;5;164m" | |
__color[165]="[38;5;165m" | |
__color[166]="[38;5;166m" | |
__color[167]="[38;5;167m" | |
__color[168]="[38;5;168m" | |
__color[169]="[38;5;169m" | |
__color[170]="[38;5;170m" | |
__color[171]="[38;5;171m" | |
__color[172]="[38;5;172m" | |
__color[173]="[38;5;173m" | |
__color[174]="[38;5;174m" | |
__color[175]="[38;5;175m" | |
__color[176]="[38;5;176m" | |
__color[177]="[38;5;177m" | |
__color[178]="[38;5;178m" | |
__color[179]="[38;5;179m" | |
__color[180]="[38;5;180m" | |
__color[181]="[38;5;181m" | |
__color[182]="[38;5;182m" | |
__color[183]="[38;5;183m" | |
__color[184]="[38;5;184m" | |
__color[185]="[38;5;185m" | |
__color[186]="[38;5;186m" | |
__color[187]="[38;5;187m" | |
__color[188]="[38;5;188m" | |
__color[189]="[38;5;189m" | |
__color[190]="[38;5;190m" | |
__color[191]="[38;5;191m" | |
__color[192]="[38;5;192m" | |
__color[193]="[38;5;193m" | |
__color[194]="[38;5;194m" | |
__color[195]="[38;5;195m" | |
__color[196]="[38;5;196m" | |
__color[197]="[38;5;197m" | |
__color[198]="[38;5;198m" | |
__color[199]="[38;5;199m" | |
__color[200]="[38;5;200m" | |
__color[201]="[38;5;201m" | |
__color[202]="[38;5;202m" | |
__color[203]="[38;5;203m" | |
__color[204]="[38;5;204m" | |
__color[205]="[38;5;205m" | |
__color[206]="[38;5;206m" | |
__color[207]="[38;5;207m" | |
__color[208]="[38;5;208m" | |
__color[209]="[38;5;209m" | |
__color[210]="[38;5;210m" | |
__color[211]="[38;5;211m" | |
__color[212]="[38;5;212m" | |
__color[213]="[38;5;213m" | |
__color[214]="[38;5;214m" | |
__color[215]="[38;5;215m" | |
__color[216]="[38;5;216m" | |
__color[217]="[38;5;217m" | |
__color[218]="[38;5;218m" | |
__color[219]="[38;5;219m" | |
__color[220]="[38;5;220m" | |
__color[221]="[38;5;221m" | |
__color[222]="[38;5;222m" | |
__color[223]="[38;5;223m" | |
__color[224]="[38;5;224m" | |
__color[225]="[38;5;225m" | |
__color[226]="[38;5;226m" | |
__color[227]="[38;5;227m" | |
__color[228]="[38;5;228m" | |
__color[229]="[38;5;229m" | |
__color[230]="[38;5;230m" | |
__color[231]="[38;5;231m" | |
__color[232]="[38;5;232m" | |
__color[233]="[38;5;233m" | |
__color[234]="[38;5;234m" | |
__color[235]="[38;5;235m" | |
__color[236]="[38;5;236m" | |
__color[237]="[38;5;237m" | |
__color[238]="[38;5;238m" | |
__color[239]="[38;5;239m" | |
__color[240]="[38;5;240m" | |
__color[241]="[38;5;241m" | |
__color[242]="[38;5;242m" | |
__color[243]="[38;5;243m" | |
__color[244]="[38;5;244m" | |
__color[245]="[38;5;245m" | |
__color[246]="[38;5;246m" | |
__color[247]="[38;5;247m" | |
__color[248]="[38;5;248m" | |
__color[249]="[38;5;249m" | |
__color[250]="[38;5;250m" | |
__color[251]="[38;5;251m" | |
__color[252]="[38;5;252m" | |
__color[253]="[38;5;253m" | |
__color[254]="[38;5;254m" | |
__color[255]="[38;5;255m" | |
# if [[ "$TERM" =~ -256color ]] ; then | |
color() { echo -ne ${__color[$1]} ; return 0 ; } | |
# else | |
# color() { return 0 ; } | |
# fi | |
# __reset="$(tput sgr0)" | |
# for i in {0..255} ; do | |
# echo "__color[$i]=\"$(tput setaf $i)\"" >> $colorscript | |
# done | |
# Hosts---------------------------------------------------------------------- | |
if command -v dnsdomainname >/dev/null 2>/dev/null ; then | |
export DOMAIN=$(dnsdomainname) | |
elif command -v scutil >/dev/null 2>/dev/null ; then | |
export DOMAIN=$(echo 'show State:/Network/Global/DNS' | scutil | grep DomainName | sed -e 's/^.*: *//') | |
fi | |
if [[ -n $DOMAIN ]] ; then | |
export BOXEN=$(host -t TXT boxen.${DOMAIN} | sed -e 's/^[^"]*"//' -e 's/"$//') | |
fi | |
if [[ -n $BOXEN ]] ; then | |
boxen_tmux() { | |
tmux new-session -d -s BOXEN | |
for host in $BOXEN ; do | |
tmux new-window -t BOXEN -a -n $host "exec ssh $host" | |
done | |
tmux new-session -d -s DEV | |
tmux new-window -t DEV -a | |
tmux new-window -t DEV -a | |
tmux new-window -t DEV -a | |
tmux att -t DEV | |
} | |
boxen_confsync() { | |
for host in $BOXEN ; do | |
echo $host | |
ping -q -c 1 -W 250 $host >/dev/null 2>/dev/null && confsync "$USER@${host}:" | |
done | |
} | |
fi | |
# Prompt--------------------------------------------------------------------- | |
_ps1_time_color() { | |
if [[ $? -eq 0 ]] ; then | |
color 4 | |
else | |
color 1 | |
fi | |
return 0 | |
} | |
_ps1_id_color() { | |
if [[ $UID -eq 0 ]] ; then | |
color 9 | |
else | |
color 7 | |
fi | |
return 0 | |
} | |
_ps1_id() { | |
if [[ $EUID -eq 0 ]] ; then | |
echo -n "__ROOT__" | |
else | |
echo -n $USER | |
fi | |
return 0 | |
} | |
_ps1_ruby() { | |
if command -v rvm-prompt >/dev/null 2>/dev/null ; then | |
printf "%s" " $(rvm-prompt)" | |
elif command -v ruby >/dev/null 2>/dev/null ; then | |
_RUBY_VERSION=$(ruby --version) | |
_RUBY=${_RUBY_VERSION/ruby /ruby-} | |
printf "%s" " ${_RUBY/ */}" | |
fi | |
return 0 | |
} | |
_ps1_git_color() { | |
if command -v git >/dev/null 2>/dev/null ; then | |
export __LOCAL_GIT_STATUS="`git status -unormal 2>&1`" | |
if ! [[ "$__LOCAL_GIT_STATUS" =~ Not\ a\ git\ repo ]]; then | |
if [[ "$__LOCAL_GIT_STATUS" =~ nothing\ to\ commit ]]; then | |
color 10 | |
elif [[ "$__LOCAL_GIT_STATUS" =~ nothing\ added\ to\ commit\ but\ untracked\ files\ present ]]; then | |
color 11 | |
else | |
color 9 | |
fi | |
fi | |
fi | |
return 0 | |
} | |
_ps1_git() { | |
if command -v __git_ps1 >/dev/null 2>/dev/null ; then | |
if [[ "$__LOCAL_GIT_STATUS" =~ On\ branch\ ([^[:space:]]+) ]]; then | |
branch=${BASH_REMATCH[1]} | |
test "$branch" != master || branch=' ' | |
else | |
branch="(`git describe --all --contains --abbrev=4 HEAD 2> /dev/null || echo HEAD`)" | |
fi | |
printf "$(__git_ps1)" | |
fi | |
return 0 | |
} | |
ps1_update() { | |
export PS1='\[$__reset\]\[$(_ps1_time_color)\]\t\[$__reset\] \[$(_ps1_id_color)\]$(_ps1_id)\[$__reset\]@\[${__color[4]}\]\h\[$__reset\]$(_ps1_ruby)\[$(_ps1_git_color)\]$(_ps1_git)\[$__reset\] \w \$ ' | |
} | |
export PROMPT_COMMAND="ps1_update" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment