1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-12-05 09:43:38 +08:00
ohmyzsh/plugins/bundler/bundler.plugin.zsh

70 lines
1.8 KiB
Bash
Raw Normal View History

2011-02-16 03:27:25 +08:00
alias be="bundle exec"
2011-07-14 05:41:36 +08:00
alias bl="bundle list"
alias bp="bundle package"
alias bo="bundle open"
2011-08-31 19:51:10 +08:00
alias bu="bundle update"
alias bi="bundle_install"
2011-07-14 05:41:09 +08:00
# The following is based on https://github.com/gma/bundler-exec
2014-06-16 22:18:22 +08:00
bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard irb jekyll kitchen knife middleman nanoc puma rackup rainbows rake rspec ruby shotgun spec spin spork spring strainer tailor taps thin thor unicorn unicorn_rails)
2011-07-14 05:41:09 +08:00
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
for cmd in $UNBUNDLED_COMMANDS; do
bundled_commands=(${bundled_commands#$cmd});
done
2011-07-14 05:41:09 +08:00
## Functions
bundle_install() {
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
}
2011-07-14 05:41:09 +08:00
_bundler-installed() {
which bundle > /dev/null 2>&1
}
_within-bundled-project() {
local check_dir="$PWD"
while [ "$check_dir" != "/" ]; do
2011-07-14 05:41:09 +08:00
[ -f "$check_dir/Gemfile" ] && return
check_dir="$(dirname $check_dir)"
done
false
}
_run-with-bundler() {
if _bundler-installed && _within-bundled-project; then
2011-07-15 00:34:18 +08:00
bundle exec $@
2011-07-14 05:41:09 +08:00
else
2011-07-15 00:34:18 +08:00
$@
2011-07-14 05:41:09 +08:00
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