Skip to content

Instantly share code, notes, and snippets.

@reedlaw
Created December 11, 2013 20:23
Show Gist options
  • Save reedlaw/7917777 to your computer and use it in GitHub Desktop.
Save reedlaw/7917777 to your computer and use it in GitHub Desktop.
zsh config
# 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