mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-30 02:44:42 +01:00
'spin' should be put into Gemfile. It is not the way spin was designed. From README: "Spin is designed so that your app never has to know about it. You can use Spin to run your tests while the rest of your team doesn't even know that Spin exists." https://github.com/jstorimer/spin#how-is-it-different-from-spork
44 lines
1 KiB
Bash
44 lines
1 KiB
Bash
alias be="bundle exec"
|
|
alias bi="bundle install"
|
|
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 cap capify cucumber foreman guard jekyll middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma)
|
|
|
|
## Functions
|
|
|
|
_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
|