Created
December 11, 2013 20:23
-
-
Save reedlaw/7917777 to your computer and use it in GitHub Desktop.
zsh config
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
# Lines configured by zsh-newuser-install | |
HISTFILE=~/.histfile | |
HISTSIZE=10000 | |
SAVEHIST=100000 | |
setopt appendhistory autocd beep nomatch | |
unsetopt notify | |
bindkey -e | |
# End of lines configured by zsh-newuser-install | |
# The following lines were added by compinstall | |
zstyle :compinstall filename '/home/reed/.zshrc' | |
autoload -Uz compinit | |
compinit | |
# End of lines added by compinstall | |
# Node.js settings | |
NPM_PACKAGES=~/.npm-packages | |
NODE_PATH=$NPM_PACKAGES/lib/node_modules:$NODE_PATH | |
PATH=$NPM_PACKAGES/bin:$PATH | |
# Ruby settings | |
export GEM_HOME=~/.gem/ruby/2.0.0 | |
export PATH=$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH | |
# Git settings | |
# git alias | |
alias gp='git push origin master' | |
alias gph='git push heroku master' | |
alias ga='git add .' | |
alias gai='git add --interactive' | |
alias gd='git diff' | |
alias gsa='git status' | |
alias gl='git log' | |
alias glg='git lg' | |
gitCommit() | |
{ | |
git commit -m "$1" | |
} | |
alias gcm=gitCommit | |
alias grv='git remote -v' | |
alias gba='git branch -a' | |
# | |
# Bundler plugin (oh my zsh) | |
# | |
# From https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/bundler/bundler.plugin.zsh | |
# | |
alias be="bundle exec" | |
alias bl="bundle list" | |
alias bp="bundle package" | |
alias bo="bundle open" | |
alias bu="bundle update" | |
# The following is based on https://github.com/gma/bundler-exec | |
bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rails rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma) | |
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list | |
for cmd in $UNBUNDLED_COMMANDS; do | |
bundled_commands=(${bundled_commands#$cmd}); | |
done | |
## Functions | |
bi() { | |
if _bundler-installed && _within-bundled-project; then | |
local bundler_version=`bundle version | cut -d' ' -f3` | |
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then | |
if [[ "$(uname)" == 'Darwin' ]] | |
then | |
local cores_num="$(sysctl hw.ncpu | awk '{print $2}')" | |
else | |
local cores_num="$(nproc)" | |
fi | |
bundle install --jobs=$cores_num $@ | |
else | |
bundle install $@ | |
fi | |
else | |
echo "Can't 'bundle install' outside a bundled project" | |
fi | |
} | |
_bundler-installed() { | |
which bundle > /dev/null 2>&1 | |
} | |
_within-bundled-project() { | |
local check_dir=$PWD | |
while [ $check_dir != "/" ]; do | |
[ -f "$check_dir/Gemfile" ] && return | |
check_dir="$(dirname $check_dir)" | |
done | |
false | |
} | |
_run-with-bundler() { | |
if _bundler-installed && _within-bundled-project; then | |
bundle exec $@ | |
else | |
$@ | |
fi | |
} | |
## Main program | |
for cmd in $bundled_commands; do | |
eval "function unbundled_$cmd () { $cmd \$@ }" | |
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}" | |
alias $cmd=bundled_$cmd | |
if which _$cmd > /dev/null 2>&1; then | |
compdef _$cmd bundled_$cmd=$cmd | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment